Android N上Popwindow显示位置不正确问题「建议收藏」

Android N上Popwindow显示位置不正确问题「建议收藏」Popwindow是Android应用开发过程中比较常用的一个组件,最近发现了在AndroidN(Android7.0)上Popwindow的一个位置显示问题,使用showAsDropDown或者是showAtLocation来显示Popwindow,Popwindow总是顶到了屏幕顶部,而不是在设置的指定控件下方显示,而在Android6.0及其他系统上显示正常。如图所示:mPopu

大家好,又见面了,我是你们的朋友全栈君。 如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Popwindow是Android应用开发过程中比较常用的一个组件,最近发现了在Android N(Android 7.0,7.1)上Popwindow的一个位置显示问题,当指定PopupWindow高度为MATCH_PARENT时使用showAsDropDown或者是showAtLocation来显示Popwindow,Popwindow总是顶到了屏幕顶部,而不是在设置的指定控件下方显示,而在Android 6.0及6.0以下系统上显示正常。
如图所示:

mPopupWindow.showAsDropDown(mBtn);

Android 6.0及以下系统上正常显示(在指定的控件的下发显示):

Android N上Popwindow显示位置不正确问题「建议收藏」

Android N(7.0)以及 上显示不正常不论怎么设置总是顶到屏幕顶部):

Android N上Popwindow显示位置不正确问题「建议收藏」

经过查找资料,发现这是Android N上Popwindow的一个Bug。可以通过如下方法来解决:

   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { // Android 7.x中,PopupWindow高度为match_parent时,会出现兼容性问题,需要处理兼容性
                int[] mLocation = new int[2];
                mBtn.getLocationInWindow(mLocation);
                int offsetY = mLocation[1] + mBtn.getHeight();
                if (Build.VERSION.SDK_INT >= 25) { // Android 7.1中,PopupWindow高度为 match_parent 时,会占据整个屏幕
                    //故而需要在 Android 7.1上再做特殊处理
                    int screenHeight = DisplayUtil.getScreenHeight(MainActivity.this); // 获取屏幕高度
                    mPopupWindow.setHeight(screenHeight - offsetY); // 重新设置 PopupWindow 的高度
                }
                mPopupWindow.showAtLocation(view, Gravity.NO_GRAVITY, 0, offsetY);
            } else {
                mPopupWindow.showAsDropDown(mBtn);
            }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/196998.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
全栈程序员-用户IM全栈程序员-用户IM
0 0

相关推荐

  • shell getopt「建议收藏」

    shell getopt「建议收藏」

    shell getopt「建议收藏」getopt简介命令语法解析规则短选项长选项双引号的作用shell脚本示例shift命令set命令eval实际运行最后getopt简介以下主要翻译自mangetopt。getopt是用来解析传入shell的命令行参数的,它可以支持如‘rm-r’中’-r’形式的参数解析。命令语法先从一个较为明了的语法开始getopt-ooptstring–paramete

    全栈程序员-用户IM 全栈程序员-用户IM
    2022年4月29日
  • Ubuntu之Dokcer和Docker Compose学习笔记

    Ubuntu之Dokcer和Docker Compose学习笔记

    Ubuntu之Dokcer和Docker Compose学习笔记

    全栈程序员-用户IM 全栈程序员-用户IM
    2021年7月11日
  • ASP.NET MVC 控制器激活(一)

    ASP.NET MVC 控制器激活(一)

    ASP.NET MVC 控制器激活(一)

    全栈程序员-用户IM 全栈程序员-用户IM
    2021年8月30日
  • 怎么用python打开csv文件_使用Python从CSV文件读取数据

    怎么用python打开csv文件_使用Python从CSV文件读取数据

    怎么用python打开csv文件_使用Python从CSV文件读取数据CSV文件,也就是Comma-separatedValue文件,用sublime打开是这样(数据下载见文末):如果用excel打开是这样(千万别点保存,保存就有问题):来看看怎么打开,如果安装了anaconda,我们先打开JupyterNotebook,新建一个ipynb文件:我们看完数据了,应该从哪里开始?当然是从python官方文档开始!先搜下csv,找到不少结果,csv是python…

    全栈程序员-用户IM 全栈程序员-用户IM
    2022年7月20日
  • Linux下安装mysql8.0.20

    Linux下安装mysql8.0.20

    Linux下安装mysql8.0.20文章目录Linux下安装mysql8.0.20安装前准备安装Linux下安装mysql8.0.20安装前准备1.下载地址:2.检测是否安装过mysql#检测是否安装过mysqlrpm-qa|grepmysql#删除命令rpm-e–nodepsmysql-libs-5.1.73-5.el6_6.x86_643.查询所有Mysql对应的文件夹(删除)whereismysqlrm-rf/usr/lib64/mysql/usr/share/mysqlfin

    全栈程序员-用户IM 全栈程序员-用户IM
    2022年6月9日
  • 虚拟机怎么退出vi编辑模式_手机系统占用30个g正常吗

    虚拟机怎么退出vi编辑模式_手机系统占用30个g正常吗

    虚拟机怎么退出vi编辑模式_手机系统占用30个g正常吗ESC键->冒号->小写q->(可选:不保存退出加个惊叹号!)->(可选:如文件需保存加个小写w)  当编辑完文件,准备退出Vi返回到shell时,可以使用以下几种方法之一。   (1)在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出,返回到shell;若当前编辑的文件没被修改过,则Vi直接退出,返回到shel

    全栈程序员-用户IM 全栈程序员-用户IM
    2022年9月30日

发表回复

您的电子邮箱地址不会被公开。

最新发布

  • idea删除项目「建议收藏」

    idea删除项目「建议收藏」

    2022年11月3日

  • 乱码_idea控制台中文乱码解决不了

    乱码_idea控制台中文乱码解决不了

    2022年11月3日

  • IntelliJ IDEA中怎么全局搜索替换(整个项目)(Eclipse)

    IntelliJ IDEA中怎么全局搜索替换(整个项目)(Eclipse)

    2022年11月3日

  • idea方法注解快捷键_idea生成方法的快捷键

    idea方法注解快捷键_idea生成方法的快捷键

    2022年11月2日

关注全栈程序员社区公众号

玻璃钢生产厂家汝州玻璃钢雕塑定制深泽县玻璃钢雕塑海南玻璃钢红军雕塑玻璃钢花盆栽番茄玻璃钢海豚雕塑描述广东常见商场美陈销售厂家衡水玻璃钢仿铜雕塑定制玻璃钢雕塑制作简易流程汕头玻璃钢雕塑服务电话厚街玻璃钢花盆花器石家庄景观玻璃钢雕塑定制上城区玻璃钢金属雕塑价格长沙动漫玻璃钢雕塑公司玻璃钢浮雕不锈钢公园雕塑厂湖南步行街玻璃钢雕塑制作舟山玻璃钢人物雕塑厂家潮州玻璃钢卡通雕塑定制北京个性化玻璃钢雕塑制作商场手表活动柜台七夕花艺美陈商场的美陈是什么意思北京大型商场创意商业美陈腾冲市玻璃钢雕塑费用品牌玻璃钢卡通雕塑按需定制陕西大型玻璃钢雕塑设计成都玻璃钢仿铜雕塑郑州安庆玻璃钢雕塑曲靖市玻璃钢雕塑定制镇江玻璃钢人物雕塑定制价格商场里的美陈是什么样的玻璃钢花盆的特点香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化