欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android7.0上某些PopuWindow出现显示位置不正确问题的解决方法

程序员文章站 2023-11-28 21:14:58
本文实例讲述了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程序设计有所帮助。