PopupWindow在安卓7.0及7.1系统上位置显示异常
Posted Gradle官方文件
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PopupWindow在安卓7.0及7.1系统上位置显示异常相关的知识,希望对你有一定的参考价值。
做项目时发现Popupwindow在7.0及以上的设备上显示位置异常,6.0上及以下却没有问题:
如下图所示
解决方式:重写Popupwindow的showasdrop方法:
/**
* 创建时间: 2017/12/5.
* 创 建 人: joey.
* 功能描述: 处理不兼容7.0,7.1显示问题
*/
public class SFPopupWindow extends PopupWindow
public SFPopupWindow(View contentView, int width, int height)
super(contentView, width,height);
@Override
public void showAsDropDown(View anchor)
if(Build.VERSION.SDK_INT >= 24)
Rect rect = new Rect();
anchor.getGlobalVisibleRect(rect);
int h = anchor.getResources().getDisplayMetrics().heightPixels - rect.bottom;
setHeight(h);
super.showAsDropDown(anchor);
完美解决问题:
以上是关于PopupWindow在安卓7.0及7.1系统上位置显示异常的主要内容,如果未能解决你的问题,请参考以下文章
7.0手机后popupWindow 的showAtLocation()和showAsDropDown()
PopupWindow设置底部,兼容7.0 与 在华为等带虚拟控制栏被遮挡