PopUpWindow位置指定对小米4(Android7.0)兼容适配

本文测试环境为Android7.0版本的小米4,因为今天是年前最后一天上班的关系,才有时间写个博客,也是这个原因,心情浮躁,没有时间做多余的测试。所以尚不清楚是机型适配问题还是Android7.0版本的问题。因为产品中存在沉浸栏,之前怀疑是沉浸栏对此功能的适配性不佳,后来去掉沉浸栏发现问题仍然存在。


下面进入正题。

UI要求的效果如下图所示:


一切都很正常,直到测试拿出小米4手机测试,效果却变成了这样:


这踏马的就尴尬了不是么???

我使用的方法为:


popupwindow.showAsDropDown(view,x,y),

这个方法可以指定一个控件的下方显示当前popupwindow。且能控制间距。

我这里传入的view为右上角的蓝色小图标,但是显然这条属性在小米4上是失效了的。

后来把popupwindow的高设置成包裹内容,就可以了,小米4手机上popupwindow在需求的控件下方显示。但是又有一个问题出现了,UI要求的是剩余部分为透明灰色啊,把控件写成包裹内容虽然解决了机型适配问题,但是屏幕剩余部分则变成了纯透明色啊,activity里的内容展露无遗,UI不同意也没办法通过测试啊。

最后实在找不到方法了,只能做点小手脚了。popupwindow的宽高仍然为充满父窗体,但是,我可以把popupwindow多套一层布局,让其最外层为纯透明色,而内层则为透明灰色,同时具备上边距margin,高度则看UI需求了。同时,我在activity的布局最上方写了一个高度为0 的View,让它作为popupwindow的锚点,(根布局应该也可以,没有试)。这样,在普通手机上popupwindow距离手机顶端的控件有上边距,而小米4这种不支持的手机则是距离手机上顶端有上边距,结局还是一样的。

这样,解决了机型适配的问题。



下面简单贴一下代码:

popupwindow的代码:



popupwindow的布局代码:



希望能帮助到一些人。虽然我知道我博客写的很烂···=_=求不扔臭鸡蛋。如有更好的办法解决,欢迎一起沟通讨论,求大神们照看。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值