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及以上系统如何抓取Https的包

7.0手机后popupWindow 的showAtLocation()和showAsDropDown()

安卓7.0及以上版本抓包https失败解决方法

PopupWindow设置底部,兼容7.0 与 在华为等带虚拟控制栏被遮挡

PopupWindow设置底部,兼容7.0 与 在华为等带虚拟控制栏被遮挡

怎样把安卓系统升级到7.0