Android7.0上某些PopuWindow出现显示位置不正确问题的解决方法
程序员文章站
2023-12-13 12:45:16
本文实例讲述了android7.0上某些popuwindow出现显示位置不正确问题的解决方法。分享给大家供大家参考,具体如下:
情景描述:
在andorid7.0及以上...
本文实例讲述了android7.0上某些popuwindow出现显示位置不正确问题的解决方法。分享给大家供大家参考,具体如下:
情景描述:
在andorid7.0及以上系统,点击某个view,本来期待有一个popuwindow在该view下面弹出(调用popuwindow.showasdropdown(view)
方法)但结果popuwindow却弹出在view上方,顶在系统状态栏下面。
原因分析:
在android7.0上,如果不主动约束popuwindow的大小,比如,设置布局大小为 match_parent,那么popuwindow会变得尽可能大,以至于 view下方无空间完全显示popuwindow,而且view又无法向上滚动,此时popuwindow会主动上移位置,直到可以显示完全。
解决办法:
主动约束popuwindow的内容大小,重写showasdropdown方法:
@override public void showasdropdown(view anchor) { if(build.version.sdk_int >= 24){ rect visibleframe = new rect(); anchor.getglobalvisiblerect(visibleframe); int height = anchor.getresources().getdisplaymetrics().heightpixels - visibleframe.bottom; setheight(height); } super.showasdropdown(anchor); }
更多关于android相关内容感兴趣的读者可查看本站专题:《android窗口相关操作技巧总结》、《android开发入门与进阶教程》、《android调试技巧与常见问题解决方法汇总》、《android基本组件用法总结》、《android视图view技巧总结》、《android布局layout技巧总结》及《android控件用法总结》
希望本文所述对大家android程序设计有所帮助。