• 在Android 7.0以上PopupWindow.showAsDropDown()不起作用问题


    最近优化界面,调用PopupWindow.showAsDropDown()发现,窗口并没有在控件下方显示。

    有网友说是7.0以上系统的问题,可以自定义PopupWindow,重写showAsDropDown,如下

     1    @Override
     2     public void showAsDropDown(View anchor) {
     3         if(Build.VERSION.SDK_INT >= 24) {
     4             Rect rect = new Rect();
     5             anchor.getGlobalVisibleRect(rect);
     6             int h = anchor.getResources().getDisplayMetrics().heightPixels - rect.bottom;
     7             setHeight(h);
     8         }
     9         super.showAsDropDown(anchor);
    10     }

     发现屏幕下方有一块空缺,没有铺满整个屏幕,有网友说是因为

    new MyPopupWindow(contentView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

     初始化时设置了充满屏幕,所以后面的位移就没有了效果。

    最终尝试将PopupWindow的高度准确计算出来,再去调用showAsDropDown(),这样就能实现了~ 最好不要重写showAsDropDown啦!

    By LiYing

  • 相关阅读:
    docker镜像
    docker常用命令
    docker基础
    跨站脚本漏洞(XSS)基础
    Session、Cookie与Token
    linux之curl工具
    ssl证书与java keytool工具
    mysql主从复制
    linux之平均负载(学习笔记非原创)
    mysql8.0忘记密码如何操作?
  • 原文地址:https://www.cnblogs.com/widgetbox/p/10906552.html
Copyright © 2020-2023  润新知