首页 文章

导航架构组件 - 导航抽屉

提问于
浏览
2

我正在使用带有导航抽屉的导航组件 .

  • 我为菜单中的每个导航项添加了片段 .

  • 添加NavHostFragment将交换此Fragment

  • 然后将碎片添加为目的地

  • 我想要主要细节导航,即开始目的地 - >片段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.模态登录活动导航怎么样?

2 回答

  • 0

    我问题的部分原因是如何导航到注销 .

    通常,当用户单击注销时,您希望将其注销并导航到启动屏幕 .

    因此,您需要将您的启动活动添加到nav_graph .

  • 0

    迈克尔,导航架构一开始并不容易理解,你想要的不是例外,我不明白你想要什么 . 但由于此导航是新的,我建议您遵循代码实验室 .

    https://codelabs.developers.google.com/codelabs/android-navigation/#0

    我看到你的线条关闭抽屉 . 代码实验室有关于使用导航设置导航抽屉的用户的说明 .

    我希望它对你有所帮助 .

相关问题