Android7.0上某些PopuWindow出现显示位置不正确问题的解决方法
作者:tu_sample 时间:2021-12-13 22:44:36
本文实例讲述了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程序设计有所帮助。
来源:http://blog.csdn.net/frained/article/details/53643427
标签:Android7.0,PopuWindow
0
投稿
猜你喜欢
Javassist之一秒理解java动态编程
2023-11-09 09:36:33
Android之软键盘自动弹出和关闭【代码分享】
2021-06-30 16:26:08
C#实现合并及拆分PDF文件的方法
2021-06-15 12:55:23
解决IDEA2020 创建maven项目没有src/main/java目录和webapp目录问题
2022-05-29 07:57:18
RecyclerView的使用之HelloWorld
2023-10-24 08:14:13
SpringBoot整合Mybatis实现CRUD
2022-01-10 09:26:45
Kotlin封装RecyclerView Adapter实例教程
2023-11-06 01:54:23
C#中winform控制textbox输入只能为数字的方法
2023-06-26 12:09:03
C# 添加、修改和删除PDF书签的实例代码
2022-09-24 06:45:55
详解Java环境变量配置方法(Windows)
2022-05-09 02:39:33
Java NIO和IO的区别
2023-07-15 22:53:46
IDEA2020.2.3中创建JavaWeb工程的完整步骤记录
2022-03-15 05:16:02
详解Matisse与Glide--java.lang.NoSuchMethodError:com.bumptech.glide.RequestManager.load
2021-06-21 02:09:19
C# Aspose.Words 删除word中的图片操作
2023-07-29 12:01:43
Android中ContextMenu用法实例
2023-02-12 20:09:49
MyBatis绑定错误提示BindingException:Invalid bound statement (not found)的解决方法
2021-10-22 03:58:44
Android 定时器实现图片的变换
2021-05-28 00:33:13
使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务的方法(推荐)
2022-11-09 11:40:37
实例解析Json反序列化之ObjectMapper(自定义实现反序列化方法)
2023-11-23 18:07:25
Android标题栏中添加返回按钮功能
2022-09-16 05:52:47