-
-
Notifications
You must be signed in to change notification settings - Fork 105
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
Fix nav bar and snackbar insets #164
Conversation
Jesse205
commented
Nov 23, 2023
•
edited
Loading
edited
- 修复rail在挖孔屏下边距异常
- 修复snackbar在拥有导航栏时边距异常
为什么这里appBarMain.root.consumeInsets(start = isLandscape, bottom = !isLandscape) See here |
这里是消费一个边,设置为 通常情况下一般是“谁被填充了insets就谁消费”,但是这个逻辑很明显有问题(有snackbar的时候就非常容易暴露这个问题)。所以这个pr的逻辑是“谁的子view不需要哪边谁就消费那边”,这可能会造成误解。非常抱歉我没有详细说明这个问题。 因为横屏的时候底部导航栏(bottom navigation)会变成左侧(在中文语境下)导航条(navigation rail),因此主布局 这个消费逻辑我好像没有在低版本安卓中测试,看掘金上面的帖子说旧版本安卓逻辑和新版本不一样(官方的catalog也确实是有一些bug,旧版本导航栏没有被填充),我怕有bug,所以我把这个pr改为了草稿。 |
@Ten-Shine 我看了你的代码,你隐藏了底部导航栏。此时appBarMain不应该消费底部边距,你需要重新设置一次onApplyInsets(应该叫这个吧,我忘了),并再次申请一下insets。 另外我不知道你为什么会用这种方法而不用Dialog。用Dialog应该可以避免这种问题。 |
我指的是 bottom sheet dialog。 相关的issue:#135 |
因为dialog不允许交互,不能边按底栏,边多选。 我个人觉得小黑屋那个逻辑挺不错的,长按拖动能区间框选,同时弹出底栏。 主要是小黑屋没新的 暂停以及隐藏 工作模式,也没标签。 哦对,我觉得那个标签一直显示有点占地方,特别是横屏的时候,可以搞个上滑时隐藏标签 |
确实唉,好像只能用这种方法了。 |