[英]android - How to implement navigation with bottom app bar
我有一个具有以下4种布局的项目:
我实际上有1个活动,其中包含一个底部的应用程序栏和片段被注入的NavHostFragment。 主片段是主视图。 有一个“管理”和“设置”片段,它们都是顶层视图(例如主视图),但彼此不依赖。 可以通过单击导航抽屉中的项目来切换这3个片段。 为简化起见,我正在尝试新的导航体系结构组件。
现在我有一些设计问题:
1.1还是应该在管理片段中显示底部的应用栏? 也许只是Up插入符号的顶部栏。
1.2或底部应用栏+顶部栏和上插入符号
1.3以及抽屉图标呢,我应该在Mgmt片段中显示它吗?
我应该对“设置”片段使用片段还是活动? 使用片段时,我必须将底部的应用程序栏移到片段中。 否则,底部的应用栏将在“设置”片段中可见
管理片段只有一个回收者视图。 单击一个项目应打开一个DetailView。 我应该在这里使用片段还是活动?
我阅读了有关导航体系结构组件的文档,并且有关于自定义目的地的部分。 另外,ich检查了源代码并知道片段已被替换。 此外,我检查了一些常用的Apps,它们如何通过导航抽屉实现导航,并注意到,它们都替换了片段。 为什么没有人隐藏/显示片段,有理由不这样做吗? 假设我们有一个带有listview的片段,其中包含从数据库或其他昂贵任务收集的数据。 那么显示/隐藏这些片段而不是替换它们会更好吗?
抱歉,这是我的第一个应用程序,我对此主题感到非常困惑,而且似乎没有官方的建议,甚至Material Design指南也没有对此提供参考。
你会怎么做?
工具栏上的setupWithNavController(或BottomAppBar之类的子类)仅设置向上图标和标题-它们不连接添加到工具栏的菜单项。
根据菜单项文档的绑定目标,您必须设置自己的侦听器并调用onNavDestinationSelected()。 对于BottomAppBar,可以通过设置Toolbar.OnMenuItemClickListener来完成:
val navController = Navigation.findNavController(this, R.id.navigation_fragment)
myBottomBar.replaceMenu(R.menu.menu_with_nav_item)
myBottomBar.setupWithNavController(navController)
// Connect MenuItems to the NavController
myBottomBar.setOnMenuItemClickListener { menuItem ->
menuItem.onNavDestinationSelected(navController)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.