popupwindow

在安卓7.0及其以上系统中,popupwindow设置popupWindow.showAsDropDown(pageHeadL, 0, 0)以后,会在安卓系统中全屏显示,不能达到在某个控件的下面。解决这种问题是重写popupwindow中的showAsDropDown方法。

####代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
PopupWindow popupWindow = new PopupWindow(vkey, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT) {
* 在安卓7.0以后popupwindow会因为弹出层设置显示比例导致不能显示在某个控件的后面,下面的方法
* 重写以后可以
* @param anchor
*/
public void (View anchor) {
if (Build.VERSION.SDK_INT >= 24) {
Rect rect = new Rect();
anchor.getGlobalVisibleRect(rect);
int h = anchor.getResources().getDisplayMetrics().heightPixels - rect.bottom;
setHeight(h);
}
super.showAsDropDown(anchor);
}
};