做PopupWindow在指定位置显示,刚开始在模拟器上运行的时候显示正常,之后在华为7.0手机上弹出,直接显示到屏幕的顶部。
解决办法如下:
if (Build.VERSION.SDK_INT < 24) {//在7.0之前
mPopupWindow.showAsDropDown(view, 0, 0);//表示显示在view的下方
} else {
// 适配 android 7.0
int[] location = new int[2];
//获取控件在window里的位置,
// 0位表示x轴方向的坐标,说白点就是view距左边的距离
// 1位表示y轴的方向,是view距离顶部(包括状态栏)的位置
view.getLocationOnScreen(location);
int x = location[0];
int y = location[1];
//表示显示在view的下方
mPopupWindow.showAtLocation(view, Gravity.NO_GRAVITY, 0,y+view.getHeight());
}