美文网首页
PopupWindow因底部导航栏隐藏而位置变化

PopupWindow因底部导航栏隐藏而位置变化

作者: colinWong | 来源:发表于2019-07-03 15:53 被阅读0次

    发现某些机型会因为导航栏隐藏的而使得popupwindow的位置变化。
    这里建议使用

    popupwindow.setClipToScreenEnabled(true)
    

    将popupwind 铺满屏幕,再调整位置。这样就不会因为底部导航栏隐藏引起位置不对了

    但是又有坑了,setClipToScreenEnabled 是隐藏API对于没有隐藏api的jar包开发人员编译器会报错,特别是多人开发的情况,有的可以运行有的不能运行。
    只有使用反射来搞了,代码如下:

       /**
         * 修复某些机型虚拟导航栏收起导致的popupwindow错位
         * @param popupWindow
         */
        public static void setOffsetBug(PopupWindow popupWindow){
            try {
                Method method = PopupWindow.class.getMethod("setClipToScreenEnabled", boolean.class);
                method.invoke(popupWindow, true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    

    相关文章

      网友评论

          本文标题:PopupWindow因底部导航栏隐藏而位置变化

          本文链接:https://www.haomeiwen.com/subject/yhpwgqtx.html