带有 NavHostFragment 和工具栏的 Android 复杂导航

时间:2021-03-02 17:00:44

标签: android navigation android-jetpack android-jetpack-navigation

在我当前的项目中,需要一个更复杂的导航,到目前为止我还没有想出一个好的解决方案。

在活动中,我有一个工具栏和一个 NavHostFragment,它使用下面的图表: Main Navigation Graph

仍然在活动中,我使用我的工具栏设置导航:

val appBarConfiguration = AppBarConfiguration(landingNavController.graph)
    setSupportActionBar(binding.toolbar)
    NavigationUI.setupWithNavController(
        binding.toolbar,
        landingNavController,
        appBarConfiguration
    )

到目前为止一切顺利,我们可以在 Fragment 之间导航,并且工具栏的 Back 图标也可以工作。

当我导航到 SignUpFragment 时,问题就开始了。这个片段是另一个流程的入口点,我是这样认为的,因为它会保存一个共享视图模型来保存每个注册步骤的数据。

因此,我的 SignUpFragment 的 XML 定义了另一个 NavHostFragment,但指向一个新的图表。 导航本身可以工作,但我的主要问题是返回按钮,因为它是在 Main 活动中使用 Main Graph 定义的,所以无论我在哪个 SignUp 步骤中输入,Back 都会将我返回到 LandingFragment。

阅读大量内容后,我注意到了一些解决方法,但这里的重点是尝试实现这一点,并保持代码简单。

0 个答案:

没有答案