popupwindow偶尔的显示失效(在低版本Android系统的手机上,测试机6.0)实在是坑害了不少人,害,而且坑了for a long time。本小白就是其中一个受害者。

百度了N久N多还是没有搜索到适合我的,说是只要在showAsDown之前设置popupwindow的宽高就好了,but,对于我来说莫得用,我布局设置了固定大小都不行。

所以我开始看各个参数,注意到了在我自定义popupwindow的builder下的:

.showAsDropDown(mLinMain, 0, 0);

就是这个,这时候我想到了屏幕的原点坐标是(0, 0),所设置的popupwindow弹出的位置也显示在(0, 0),越看越不对劲。所以我把高度设置成了负的总父布局高度(最外层的LinearLayout),也就是:

 .showAsDropDown(mLinMain, 0, -mLinMain.getHeight());

你猜怎么着,显示出来了,它终于出来了。

但是经过测试,发现,在原本设置(0, 0)的手机上,它显示的位置又高出了一截,害,真是愁si了。

有想着判断手机Android版本,后续研究出来再更新。 

也希望有大佬可以指示~

更新的结果就是通过版本号的来区分显示的。

if(Build.VERSION.SDK_INT < Build.VERSION_CODES.N){ // 如果版本号小于7.0
popBackupWindow.showAsDropDown(mLinMain, 0, -mLinMain.getHeight());
} else {
popBackupWindow.showAsDropDown(mLinMain, 0, 0);
}

Android popupwindow在低版本手机上无法显示的更多相关文章

  1. android的开发 华为手机上不显示menu键

    android的开发,华为手机上不显示menu键解决办法: 在AndroidManifest.xml中讲targetSdkVersion改为9. <uses-sdk android:minSdk ...

  2. Android 高版本API方法在低版本系统上的兼容性处理

    Android 版本更替,新的版本带来新的特性,新的方法. 新的方法带来许多便利,但无法在低版本系统上运行,如果兼容性处理不恰当,APP在低版本系统上,运行时将会crash. 本文以一个具体的例子说明 ...

  3. 使用VS2017开发APP中使用VUE.js开发遇到打包出来的android文件 在低版本的android(4.3)中无法正常使用

    使用VS2017开发VUE的APP应用遇到的问题集合 1,  打包出来的apk文件在Android 6.0版本以上手机可以正常打开,在Android 4.3版本手机上无法打开 原因:一开始猜测是不是V ...

  4. 手机上无法显示Toast信息

    关于手机上无法显示Toast信息, 是因为手机上的权限没有开, 在应用管理处将所有权限都打开,就可以显示了.

  5. android中导入低版本project可能会遇到的编译问题(转自: Victor@Beijing)

    使用高版本的SDK后再导入以前用低版本的project时,会遇到一些兼容性的问题. (1)Unable to resolve target 'android-5' 因为本机中现在使用的是2.2的SDK ...

  6. Highcharts 在低版本 IE 上使用注意事项及个人总结

    很多人经常遇到图表在主流浏览器上运行正常,在低版本IE(包括IE6.IE7.IE8等)下运行出错(图表显示不出来或显示不正常)的情况,这不是兼容性问题,而是 IE 浏览器自身的一些限制,我们只需要注意 ...

  7. Highcharts 在低版本 IE 上使用注意事项

    来源:https://segmentfault.com/a/1190000004272693 很多人经常遇到图表在主流浏览器上运行正常,在低版本IE(包括IE6.IE7.IE8等)下运行出错(图表显示 ...

  8. 支持IE低版本的上传 大文件切割上传 断点续传 秒传

    1. http://files.cnblogs.com/files/blackice/UploadDemo.rar 此demo是使用的 swfupload 2.http://download.csdn ...

  9. Android API在不同版本系统上的兼容性

    随着安卓版本的不断更新,新的API不断涌出,有时候高版本的API会在低版本crash的. 如果minSdkVersion设置过低,在build的时候,就会报错(Call requires API le ...

随机推荐

  1. Monster Audio 使用教程(四)Wifi 远程遥控

    Android端下载二维码:(链接指向的是apk包地址,所以微信可能打不开,请用自带浏览器扫描二维码)  IOS下载二维码: 安装好上面的app,确保你的移动端设备和你电脑连接的是同一个路由器(也就是 ...

  2. 多云架构下,JAVA微服务技术选型实例解析

    [摘要] 本文介绍了基于开源自建和适配云厂商开发框架两种构建多云架构的思路,以及这些思路的优缺点. 微服务生态 微服务生态本质上是一种微服务架构模式的实现,包括微服务开发SDK,以及微服务基础设施. ...

  3. C++与正则表达式入门

    什么是正则表达式? 正则表达式是一组由字母和符号组成的特殊文本, 当你想要判断许多字符串是否符合某个特定格式:当你想在一大段文本中查找出所有的日期和时间:当你想要修改大量日志中所有的时间格式,在这些情 ...

  4. MySQL(四)数据备份与还原

    数据备份与还原: 备份:将当前已有的数据或者记录保留 还原:将已经保留的数据恢复到对应的表中 为什么要做备份还原: 1.防止数据丢失:被盗.误操作 2.保护数据的记录 数据备份还原的方式很多:数据表备 ...

  5. Typora + PicGo + Gitee 实现图片自动上传到图床

    1.下载并安装 Typora (windows版本) https://typora.io/#windows 2.设置图像 文件 -- 偏好设置 -- 图像 3.上步点击下载PicGo(app) 后,去 ...

  6. 利用updatexml()报错注入mysql

    基本介绍一下updatexml() updatexml(XML_document, XPath_string, new_value) XML_document是文档对象的名称 XPath_string ...

  7. w10查看wifi密码

    1.选择网络和Internet设置 右键单击网络连接图标,选择“打开网络和Internet设置”. 2.选择网络和共享中心

  8. PPT如何转换为Word文档?

    首先,打开你要转换的PPT,按F12键,此时会跳出另存为窗口,如图: 然后点击保存类型,选择RTF文件,保存到指定路径即可. 找到保存好的RTF文件,用word打开即可.

  9. NanoHTTPD服务

    需要导入nanohttpd2.3,jar包 继承NanoHTTPD public class HttpServer extends NanoHTTPD { public HttpServer(int ...

  10. PHP date_default_timezone_set() 函数

    ------------恢复内容开始------------ 实例 设置默认时区: <?php date_default_timezone_set("Asia/Shanghai&quo ...