今天运行一个很久之前做的项目的时候,发现界面变成了这个样子,就是一个普通的popwindow
然后用了一下低版本手机测试是显示正常的,搜索相关资料,发现是Android7.0 及以上手机有这个问题
原来的代码:
mPopupWindow.showAsDropDown(view);
view是显示到哪个控件下面就放哪个view,不多解释。
现在的代码:
PopWindowUtil.showAsDropDown(mPopupWindow,view,0,0);
package com.jky.mobilebzt.util; import android.graphics.Rect; import android.os.Build; import android.view.View; import android.widget.PopupWindow; public class PopWindowUtil { public static void showAsDropDown(final PopupWindow pw, final View anchor, final int xoff, final int yoff) { if (Build.VERSION.SDK_INT >= 24) { Rect visibleFrame = new Rect(); anchor.getGlobalVisibleRect(visibleFrame); int height = anchor.getResources().getDisplayMetrics().heightPixels - visibleFrame.bottom; pw.setHeight(height); pw.showAsDropDown(anchor, xoff, yoff); } else { pw.showAsDropDown(anchor, xoff, yoff); } } }
现在的效果: