繁体   English   中英

带有底部导航视图和导航组件的后退导航

[英]Back navigation with bottom navigation view and navigation component

我有一个带有 3 个入口点(片段 A、B 和 C)的底部导航视图,它们中的每一个都可以移动到其他片段(A->D、B->E、C->F)。 为了导航,我使用了架构导航组件。 我希望当用户在 A、B 或 C 并且他按下后退按钮时应用程序退出。 如果他在 D、E 或 F 中,他应该分别从 go 到 A、B 或 C。

根据在菜单和导航图中具有相同 id 的文档是设置视图和导航组件的方法。

我知道我可以覆盖导航并自己处理它以实现我想要的,或者覆盖后退按钮。 但我想知道是否有一种方法可以实现所需的行为而无需手动处理(毕竟,这就是使用导航组件的重点)。 有没有办法做到这一点?

另外,我想用 Android 在材料设计中实现所需的行为吗? 我的理解是,但我在材料设计文档中找不到它。 我已经尝试了几个应用程序,并且看到了不同的行为(twitter、地图和 gmail 不会退出应用程序,但任务或继续执行),所以我认为这两种行为都是可以接受的。

导航原理由 Google 的 Material 和 Android UX 团队专门构建,作为应用程序的设计方式,以防止混淆后退按钮的作用:

这个 [start] 目的地也是用户在按下返回按钮后返回启动器时看到的最后一个屏幕。

这可确保用户知道在您的应用程序的任何其他屏幕上时,后退按钮不会将他们踢出应用程序。 相反,该起始目的地作为用户的路标,按下系统后退按钮会将他们踢回启动器。

因此,当使用NavigationUI帮助程序时,绝对可以预期您将始终通过图形的起始目的地(即您的A屏幕)退出。

导航有一个单独的概念,称为顶级目的地,它只控制是否显示应用栏上的向上箭头。 这允许多个顶级目的地(例如你的A、B和C)从用户的角度出现在同一层次,同时仍然符合系统返回通过起始目的地退出的原则。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM