博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
api 25 PopupWindow会占据整个屏幕
阅读量:7050 次
发布时间:2019-06-28

本文共 1179 字,大约阅读时间需要 3 分钟。

解决方法: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { // Android 7.x中,PopupWindow高度为match_parent时,会出现兼容性问题,需要处理兼容性 int[] mLocation = new int[2]; stephenCommonTopTitleView.getTopTitleView().getLocationInWindow(mLocation); int offsetY = mLocation[1] + stephenCommonTopTitleView.getTopTitleView().getHeight(); if (Build.VERSION.SDK_INT >= 25) { // Android 7.1中,PopupWindow高度为 match_parent 时,会占据整个屏幕 //故而需要在 Android 7.1上再做特殊处理 WindowManager wm = (WindowManager) activity.getSystemService(Context.WINDOW_SERVICE); int screenHeight = wm.getDefaultDisplay().getHeight(); centWinShare.setHeight(screenHeight - offsetY); // 重新设置 PopupWindow 的高度 } centWinShare.showAtLocation(stephenCommonTopTitleView.getTopTitleView(), Gravity.NO_GRAVITY, 0, offsetY); } else { centWinShare.showAsDropDown(stephenCommonTopTitleView.getTopTitleView()); } 思路大概是这样 /*if (Build.VERSION.SDK_INT != 24) { //只有24这个版本有问题,好像是源码的问题 showAsDropDown(view); } else { //7.0 showAsDropDown没卵子用 得这么写 int[] location = new int[2]; view.getLocationOnScreen(location); int x = location[0]; int y = location[1]; showAtLocation(view, Gravity.NO_GRAVITY, 0, y + view.getHeight()); //showAsDropDown(view, 0, marginTop); }*/

转载地址:http://ucpol.baihongyu.com/

你可能感兴趣的文章
Tomcat
查看>>
HBase的表结构
查看>>
10个你应该了解的Git命令(以及Git省时小窍门)
查看>>
PLSQL批量绑定插入数据
查看>>
Cesium入门9 - Loading and Styling Entities-加载和样式化实体
查看>>
node.js学习笔记三(安装外部node.js模块)
查看>>
我的友情链接
查看>>
Web应用系统开发课程(Jsp程序设计)资源列表
查看>>
浅谈微博营销公司的组织架构
查看>>
MDK4.23调试LPC1114时JLINK的设置
查看>>
SystemCenter2012SP1实践(8)私有云WEB平台SCAC
查看>>
SystemCenter2012SP1实践(30)P2V,从物理机迁移到虚拟机
查看>>
Netty4实现Websocket网页间聊天
查看>>
检测USB是否连接PC
查看>>
关于spring项目的单例测试
查看>>
加密、解密、openssl的基本应用及CA的实现过程
查看>>
<s:if test>的应用及OGNL表达式的取值
查看>>
python正则表达式——常用函数
查看>>
Python学习日记---文件操作
查看>>
epoll模型与select模型的区别
查看>>