我正在将导航组件与导航抽屉一起使用。
我想要掌握详细信息导航,即 开始目的地->片段2 后退按钮->启动目标 开始目标->片段2->片段3->片段4 后退按钮->启动目的地
我的问题是是否应该向该图添加任何连接?
我还需要一个菜单项,它只是注销功能调用而不是片段交换,因此我无法使用默认设置对其进行配置
val navController = findNavController(R.id.main_nav_host_fragment)
nav_view.setupWithNavController(navController)
但是必须使用
nav_view.setNavigationItemSelectedListener(this)
override fun onNavigationItemSelected(item: MenuItem): Boolean {
// Handle navigation view item clicks here.
when (item.itemId) {
R.id.navSignOut -> {
loginViewModel.logout()
}
else -> {
val navController = findNavController(R.id.main_nav_host_fragment)
navController.navigate(item.itemId)
}
}
drawer_layout.closeDrawer(GravityCompat.END)
return true
}
我还需要在上方(以模态形式)通过导航抽屉显示主应用程序活动的登录活动。我可以使用导航图吗?如何使用? 登录活动应:在返回按钮上->关闭应用程序,如果已注销->在主要活动上方启动,如果已登录,请进入主要活动
所以我要提问: 1.我应该采取任何行动吗? 2.我应该对抽屉或setupWithNavController()使用自定义导航吗? 3.模态登录活动导航如何?
答案 0 :(得分:0)
Michael,导航架构一开始并不容易理解,您想要的也不例外,我也不了解您想要什么。但是,由于这种导航是新的,所以我建议您遵循代码实验室。
https://codelabs.developers.google.com/codelabs/android-navigation/#0
例如,我看到您要关闭抽屉的生产线。代码实验室提供有关如何设置带有导航功能的导航抽屉的说明。
我希望它能对您有所帮助。
答案 1 :(得分:0)
我想从您的问题中了解到的部分是如何导航到注销。
通常,当用户单击注销时,您要注销并导航到启动屏幕。
因此,您需要将启动活动添加到nav_graph。