详解详解Android中中PopupWindow在在7.0后适配的解决后适配的解决
本篇文章主要介绍了详解Android中PopupWindow在7.0后适配的解决,小编觉得挺不错的,现在分享给大家,
也给大家做个参考。一起跟随小编过来看看吧
本文介绍了详解Android中PopupWindow在7.0后适配的解决,分享给大家,具体如下:
这里主要记录一次踩坑的经历。
需求:如上图左侧效果,想在按钮的下方弹一个PopupWindow。嗯,很简单一个效果,然当适配7.0后发现这个
PopupWindow显示异常,然后网上找到了下面这种方案。
7.0适配方案(但适配方案(但7.1又复现了)又复现了)
// 将popupWindow显示在anchor下方
public void showAsDropDown(PopupWindow popupWindow, View anchor) {
if (Build.VERSION.SDK_INT < 24) {
popupWindow.showAsDropDown(anchor);
} else {
// 适配 android 7.0
int[] location = new int[2];
// 获取控件在屏幕的位置
anchor.getLocationOnScreen(location);
popupWindow.showAtLocation(anchor, Gravity.NO_GRAVITY, 0, location[1] + anchor.getHeight());
}
}
然后我那个开心啊,然后我就告诉其他人popwindow 在7.0 (SDK=24)适配的问题,然后所有popwindow都这么更改了。
尴尬的是7.1 (SDK=25)上又复现了这个问题,显示异常。
最终解决方案最终解决方案
if (Build.VERSION.SDK_INT < 24) {
mPopupWindow = new FixedPopupWindow(popView, ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT);
} else {
评论0
最新资源