关于MIUI小白条及类似的“全面屏手势提示线”覆盖问题描述 · Issue #307 · razerdp/BasePopup · GitHub | 您所在的位置:网站首页 › miui底部小白条怎么打开 › 关于MIUI小白条及类似的“全面屏手势提示线”覆盖问题描述 · Issue #307 · razerdp/BasePopup · GitHub |
在测试机更新到MIUI12后,我发现了小白条的存在,起初认为没什么,但在用了一些应用后发现其实大家都对这个并没有适配,比如TIM: 当然,我们BasePopup在抛弃了手动测量高度而将其交回给系统后,也出现了这个情况: 为了验证,我分别使用了系统自身的Popup和Dialog分别进行验证: PopupWindow Dialog我们可以发现,系统的PopupWindow一样有问题,而Dialog并没有。 考虑到Dialog是拥有自己的Window的,而PopupWindow依附于Parent的Window,所以Dialog在这一方面表现的确较好,不过咱们是BasePopup(也许以后会提供一个Dialog模式~),那么解决问题当然是以PopupWindow为准。 问题根源其实看到这个小白条,我第一时间就想到曾经也有三星手机相关的issue,也是这种缩小型的navigationbar: #184 于是打开LayoutInspector查看了一下,果不其然,这个小白条 根本就不是ios那样的沉浸式 ,而是单纯的修改了NavigationBar 而PopupWindow是不应该覆盖navigationbar的,因为覆盖的话会造成事件拦截,navigationbar的事件被抢先消耗了。 BasePopup的解决方案目前BasePopup的确有解决方案,但是这套方案依然会有上面所说的覆盖navigationbar的问题,在此我提供了一些方案选择,或者如果大家有更好的方式也请在issue提出并讨论: 目前BasePopup覆盖navigationbar问题不大,但是就覆盖的问题提出两种方案: BasePopup统筹整体布局,对BasePopup内的根布局进行底部 padding ,为了更好的扩展,将提供开关让用户选择是否进行padding(默认应该是保留padding以保证不覆盖navigation) BasePopup不处理布局,但是会提供回调给BasePopupWindow,用户可以在回调方法内自行处理 附录:方案展示及方案问题所在: 覆盖navigation navigatin阻挡 |
CopyRight 2018-2019 实验室设备网 版权所有 |