Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于MIUI小白条及类似的“全面屏手势提示线”覆盖问题描述 #307

Closed
razerdp opened this issue Jun 29, 2020 · 14 comments
Closed

Comments

@razerdp
Copy link
Owner

razerdp commented Jun 29, 2020

在测试机更新到MIUI12后,我发现了小白条的存在,起初认为没什么,但在用了一些应用后发现其实大家都对这个并没有适配,比如TIM:
device-2020-06-29-151007
当然,我们BasePopup在抛弃了手动测量高度而将其交回给系统后,也出现了这个情况:
微信截图_20200629151237
为了验证,我分别使用了系统自身的Popup和Dialog分别进行验证:

PopupWindow Dialog
微信截图_20200629152026 微信截图_20200629152111

我们可以发现,系统的PopupWindow一样有问题,而Dialog并没有。

考虑到Dialog是拥有自己的Window的,而PopupWindow依附于Parent的Window,所以Dialog在这一方面表现的确较好,不过咱们是BasePopup(也许以后会提供一个Dialog模式~),那么解决问题当然是以PopupWindow为准。

问题根源

其实看到这个小白条,我第一时间就想到曾经也有三星手机相关的issue,也是这种缩小型的navigationbar:

#184

于是打开LayoutInspector查看了一下,果不其然,这个小白条 根本就不是ios那样的沉浸式 ,而是单纯的修改了NavigationBar

微信图片_20200629152612

而PopupWindow是不应该覆盖navigationbar的,因为覆盖的话会造成事件拦截,navigationbar的事件被抢先消耗了。

BasePopup的解决方案

目前BasePopup的确有解决方案,但是这套方案依然会有上面所说的覆盖navigationbar的问题,在此我提供了一些方案选择,或者如果大家有更好的方式也请在issue提出并讨论:

目前BasePopup覆盖navigationbar问题不大,但是就覆盖的问题提出两种方案:

  1. BasePopup统筹整体布局,对BasePopup内的根布局进行底部 padding ,为了更好的扩展,将提供开关让用户选择是否进行padding(默认应该是保留padding以保证不覆盖navigation)

  2. BasePopup不处理布局,但是会提供回调给BasePopupWindow,用户可以在回调方法内自行处理

附录:方案展示及方案问题所在:

覆盖navigation navigatin阻挡
微信图片_20200629153513 微信图片_20200629153518
@razerdp
Copy link
Owner Author

razerdp commented Jul 2, 2020

candy目前采取 方案一 进行适配,相关更新请看手册——正在开发

适配diff:

075b264

@DaveBoy
Copy link

DaveBoy commented Jul 2, 2020

希望能尽快发正式版 项目中遇到了此类问题

@razerdp
Copy link
Owner Author

razerdp commented Jul 2, 2020

@DaveBoy
candy可以用。

@DaveBoy
Copy link

DaveBoy commented Jul 2, 2020

@DaveBoy
candy可以用。

好的

@razerdp razerdp closed this as completed Jul 7, 2020
@eternallyjie
Copy link

你好,在更新2.2.7后,pop底部会多出来个跟导航栏高度相同的灰条。setOverlayNavigationBar方法默认是false,就会多出来一条,设置为true,布局也没有侵入到导航栏里。
手机:小米10
系统:miui12 内测版 20.9.8
效果如下图。
false
true

@razerdp
Copy link
Owner Author

razerdp commented Sep 14, 2020

你好,在更新2.2.7后,pop底部会多出来个跟导航栏高度相同的灰条。setOverlayNavigationBar方法默认是false,就会多出来一条,设置为true,布局也没有侵入到导航栏里。
手机:小米10
系统:miui12 内测版 20.9.8
效果如下图。
false
true

我的测试机就是MIUI12,Android 10哦~

你可以提供一下你的布局以及代码吗(最好用个简单的布局尝试复现)【ps,另外开个issue单独讨论吧】

@philip2016
Copy link

你好,miui12 20.7.6 内测版本,这个手势提示线遮挡了app底部的部分ui,例如底部tab等

许多应用包括手机系统应用,均有该问题

需要开发者做适配,还是后面会有全局修正?

image

@DaveBoy
Copy link

DaveBoy commented Nov 16, 2020

手机系统应用,均有该问

手机系统也有 不应该是小米的问题吗。。。

@razerdp
Copy link
Owner Author

razerdp commented Nov 16, 2020

@philip2016 这。。你得跟小米反馈一下喔 = = 跟我弹窗这边好像没啥关系

@philip2016
Copy link

额,是小米系统问题,看花了,我以为这里是小米反馈渠道.... .... 尴尬了

@jxoday
Copy link

jxoday commented Jan 19, 2021

设置导航键不可见就行了

@RubinTry
Copy link

RubinTry commented Mar 4, 2021

这个问题,小米官网也有相应的解决方案,当初我也找了好久

@razerdp
Copy link
Owner Author

razerdp commented Mar 4, 2021

这个问题,小米官网也有相应的解决方案,当初我也找了好久

请问有链接吗~毕竟我这里的解决方案可能不完美,看看官方的方案

@razerdp razerdp unpinned this issue Apr 30, 2021
@kyriej
Copy link

kyriej commented Dec 8, 2021

@razerdp 小米手势提示线 文档 https://dev.mi.com/console/doc/detail?pId=2229

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants