其他分享
首页 > 其他分享> > Android Nougat 7.1.1 showAtLocation(…)重力无法正常工作

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