繁体   English   中英

android-如何使用底部应用栏实现导航

[英]android - How to implement navigation with bottom app bar

我有一个具有以下4种布局的项目:

在此处输入图片说明

我实际上有1个活动,其中包含一个底部的应用程序栏和片段被注入的NavHostFragment。 主片段是主视图。 有一个“管理”和“设置”片段,它们都是顶层视图(例如主视图),但彼此不依赖。 可以通过单击导航抽屉中的项目来切换这3个片段。 为简化起见,我正在尝试新的导航体系结构组件。

现在我有一些设计问题:

  1. 我是否应该将底部的应用栏移动到片段中,以使它们彼此不依赖并且FAB按钮具有其他操作,否则当片段切换时,我必须在活动中更改onClickListener?

1.1还是应该在管理片段中显示底部的应用栏? 也许只是Up插入符号的顶部栏。

1.2或底部应用栏+顶部栏和上插入符号

1.3以及抽屉图标呢,我应该在Mgmt片段中显示它吗?

  1. 我应该对“设置”片段使用片段还是活动? 使用片段时,我必须将底部的应用程序栏移到片段中。 否则,底部的应用栏将在“设置”片段中可见

  2. 管理片段只有一个回收者视图。 单击一个项目应打开一个DetailView。 我应该在这里使用片段还是活动?

  3. 我阅读了有关导航体系结构组件的文档,并且有关于自定义目的地的部分。 另外,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.

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