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

Fix nav bar and snackbar insets #164

Closed
wants to merge 3 commits into from

Conversation

Jesse205
Copy link
Contributor

@Jesse205 Jesse205 commented Nov 23, 2023

  1. 修复rail在挖孔屏下边距异常
  2. 修复snackbar在拥有导航栏时边距异常

@Jesse205 Jesse205 marked this pull request as draft February 15, 2024 09:28
@Ten-Shine
Copy link

为什么这里appBarMain.root.consumeInsets(start = isLandscape, bottom = !isLandscape)
bottom取的是非,start没取非?

See here

@Jesse205
Copy link
Contributor Author

Jesse205 commented Feb 16, 2024

为什么这里appBarMain.root.consumeInsets(start = isLandscape, bottom = !isLandscape)
bottom取的是非,start没取非?

See here

这里是消费一个边,设置为 true 的时候阻止子view在的设置insets时候填充这个边。

通常情况下一般是“谁被填充了insets就谁消费”,但是这个逻辑很明显有问题(有snackbar的时候就非常容易暴露这个问题)。所以这个pr的逻辑是“谁的子view不需要哪边谁就消费那边”,这可能会造成误解。非常抱歉我没有详细说明这个问题。

因为横屏的时候底部导航栏(bottom navigation)会变成左侧(在中文语境下)导航条(navigation rail),因此主布局 appBarMain 的左侧不应该被系统导航栏或者是摄像头填充。所以横屏状态下 start 应该设置为 truebottom 应该设置为 false

这个消费逻辑我好像没有在低版本安卓中测试,看掘金上面的帖子说旧版本安卓逻辑和新版本不一样(官方的catalog也确实是有一些bug,旧版本导航栏没有被填充),我怕有bug,所以我把这个pr改为了草稿。

@Jesse205
Copy link
Contributor Author

Jesse205 commented Feb 17, 2024

@Ten-Shine 我看了你的代码,你隐藏了底部导航栏。此时appBarMain不应该消费底部边距,你需要重新设置一次onApplyInsets(应该叫这个吧,我忘了),并再次申请一下insets。

另外我不知道你为什么会用这种方法而不用Dialog。用Dialog应该可以避免这种问题。

@Jesse205
Copy link
Contributor Author

Jesse205 commented Feb 17, 2024

@Ten-Shine 我看了你的代码,你隐藏了底部导航栏。此时appBarMain不应该消费底部边距,你需要重新设置一次onApplyInsets(应该叫这个吧,我忘了),并再次申请一下insets。

另外我不知道你为什么会用这种方法而不用Dialog。用Dialog应该可以避免这种问题。

你说的dialog是指alertdialog还是bottom sheet dialog?

因为'小黑屋'和'冰箱'都是用的底栏,我习惯了。用原来的,多选还要点高处的菜单栏,不习惯。习惯长按多选了。

模仿其他应用便于其他应用的用户转向我们的应用。

我指的是 bottom sheet dialog。
至于用户体验,我打算等这几个pr合并完了问问开发者彻底重构一下主界面,方便新增功能和更改一些逻辑。

相关的issue:#135

@Ten-Shine
Copy link

因为dialog不允许交互,不能边按底栏,边多选。

我个人觉得小黑屋那个逻辑挺不错的,长按拖动能区间框选,同时弹出底栏。

主要是小黑屋没新的 暂停以及隐藏 工作模式,也没标签。

哦对,我觉得那个标签一直显示有点占地方,特别是横屏的时候,可以搞个上滑时隐藏标签

@Jesse205
Copy link
Contributor Author

确实唉,好像只能用这种方法了。

@Jesse205 Jesse205 closed this Mar 8, 2024
@Jesse205 Jesse205 deleted the fix_nav_bar_cutout branch March 8, 2024 14:19
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

Successfully merging this pull request may close these issues.

2 participants