最近用的小米5手机升级了7.0系统。使用popupWindow.showAsDropDown(view);方法已经不在有效,popWidown不能正常显示在view的下面,而是全屏显示。所以我在24版本使用showAtLocation(View parent, int gravity, int x, int y)。其中parent只要为当前页面的view即可,gravity用Gravity.NO_GRAVITY,x,y为你要显示的位置。如果要显示在某个view的下面,就获取该view的坐标就好。
下面是我的实现代码。
private void showPpw(PopupWindow popupWindow) {
if (Build.VERSION.SDK_INT < 24) {
popupWindow.showAsDropDown(view);
} else {
int[] location = new int[2];
view.getLocationOnScreen(location);
popupWindow.showAtLocation(mLine, Gravity.NO_GRAVITY, location[0], location[1] + 2);
}
}