关于MIUI小白条及类似的“全面屏手势提示线”覆盖问题描述
razerdp opened this issue · 14 comments
在测试机更新到MIUI12后,我发现了小白条的存在,起初认为没什么,但在用了一些应用后发现其实大家都对这个并没有适配,比如TIM:
当然,我们BasePopup在抛弃了手动测量高度而将其交回给系统后,也出现了这个情况:
为了验证,我分别使用了系统自身的Popup和Dialog分别进行验证:
PopupWindow | Dialog |
---|---|
我们可以发现,系统的PopupWindow一样有问题,而Dialog并没有。
考虑到Dialog是拥有自己的Window的,而PopupWindow依附于Parent的Window,所以Dialog在这一方面表现的确较好,不过咱们是BasePopup(也许以后会提供一个Dialog模式~),那么解决问题当然是以PopupWindow为准。
问题根源
其实看到这个小白条,我第一时间就想到曾经也有三星手机相关的issue,也是这种缩小型的navigationbar:
于是打开LayoutInspector查看了一下,果不其然,这个小白条 根本就不是ios那样的沉浸式 ,而是单纯的修改了NavigationBar
而PopupWindow是不应该覆盖navigationbar的,因为覆盖的话会造成事件拦截,navigationbar的事件被抢先消耗了。
BasePopup的解决方案
目前BasePopup的确有解决方案,但是这套方案依然会有上面所说的覆盖navigationbar的问题,在此我提供了一些方案选择,或者如果大家有更好的方式也请在issue提出并讨论:
目前BasePopup覆盖navigationbar问题不大,但是就覆盖的问题提出两种方案:
-
BasePopup统筹整体布局,对BasePopup内的根布局进行底部 padding ,为了更好的扩展,将提供开关让用户选择是否进行padding(默认应该是保留padding以保证不覆盖navigation)
-
BasePopup不处理布局,但是会提供回调给BasePopupWindow,用户可以在回调方法内自行处理
附录:方案展示及方案问题所在:
覆盖navigation | navigatin阻挡 |
---|---|
希望能尽快发正式版 项目中遇到了此类问题
手机系统应用,均有该问
手机系统也有 不应该是小米的问题吗。。。
@philip2016 这。。你得跟小米反馈一下喔 = = 跟我弹窗这边好像没啥关系
额,是小米系统问题,看花了,我以为这里是小米反馈渠道.... .... 尴尬了
设置导航键不可见就行了
这个问题,小米官网也有相应的解决方案,当初我也找了好久
这个问题,小米官网也有相应的解决方案,当初我也找了好久
请问有链接吗~毕竟我这里的解决方案可能不完美,看看官方的方案