Android Nougat 7.1.1 showAtLocation(…)重力无法正常工作
作者:互联网
这与以下问题有关:
Android Nougat PopupWindow showAsDropDown(…) Gravity not working
但是,当我应用此修复程序时:
if (android.os.Build.VERSION.SDK_INT >=24) {
int[] a = new int[2];
anchorView.getLocationInWindow(a);
popUp.showAtLocation(((Activity) mContext).getWindow().getDecorView(), Gravity.NO_GRAVITY, 0 , a[1]+anchorView.getHeight());
} else{
popUp.showAsDropDown(anchorView);
}
它在Android Nougat 7.1.1上不起作用.特别是在Google Pixel和Nexus 6p设备上.
有人对此有解决办法吗?请分享.
https://code.google.com/p/android/issues/detail?id=231487
解决方法:
当我将PopupWindow的高度从WindowManager.LayoutParams.MATCH_PARENT更改为WindowManager.LayoutParams.WRAP_CONTENT时,它可以在Android 7.1上运行,我不知道原因,但也许您可以尝试一下.
另外,您需要将代码更改为:
if (android.os.Build.VERSION.SDK_INT == 24) {
int[] a = new int[2];
anchorView.getLocationInWindow(a);
popUp.showAtLocation(((Activity)mContext).getWindow().getDecorView(), Gravity.NO_GRAVITY, 0 , a[1]+anchorView.getHeight());
} else{
popUp.showAsDropDown(anchorView);
}
标签:android-7-1-nougat,android-popupwindow,android 来源: https://codeday.me/bug/20191026/1935349.html