gpt4 book ai didi

android - 喷气背包导航 : how to navigate from child of one nested graph to child from another nested graph?

转载 作者:行者123 更新时间:2023-12-05 00:15:03 26 4
gpt4 key购买 nike

导航结构:

MainActivity
|- nav_root
|- HomeFragment
|- AuthNestedGraph
| |- nav_auth
| | |-BeforeOtpFragment(home)
| | |-OtpFragment
|
|- ProfileNestedGraph
| |- nav_prfole
| | |-ProfileFragmentOne(home)
| | |-ProfileFragmentTwo
enter image description here
enter image description here
我可以从 HomeFragment 导航到 BeforeOtp(nav_auth home)、toProfileOne(nav_profile home)。
我也可以从任何身份验证 fragment 导航到 toProfileOne,或者从配置文件 fragment 导航到 BeforeOtp 通过全局 ID
但是如何从另一个嵌套图形/导航文件的 fragment 导航到未设置为主页的子 fragment ?喜欢 OtpFragment/ProfileTwoFragment。如何更改导航 Controller ?
尝试全局时出现异常:“无法从当前目的地 Destination 中找到”
我可以通过深度链接来做到这一点,但这不是我正在寻找的解决方案。
This project github
enter image description here

最佳答案

原来这个答案很简单,但希望它可以帮助别人。
因此,我们希望从 nav_auth 中的任何 Auth fragment 导航到 nav_profile 中的 ProfileTwo。
我们所做的:

  • 将全局操作添加到 nav_profile 中的配置文件二:
    enter image description here
  •     <action
    android:id="@+id/action_global_profileTwoFragment"
    app:destination="@id/profileTwoFragment"
    app:popUpTo="@id/profileTwoFragment"
    app:popUpToInclusive="true"
    app:launchSingleTop="false" />
  • 在导航功能中,我们找到了 navController。通过导航文件的 id 设置新的 Graph,需要的 Fragment 位于哪里。并通过全局操作导航:
  •     override fun routeToProfileTwoFragment() {
    val navController = fragment.findNavController()
    navController.setGraph(R.navigation.nav_profile)
    navController.navigate(R.id.action_global_profileTwoFragment)
    }

  • 因为如果我们想要导航到主导航图(nav_root),我们需要在导航时将其更改回来(还将全局操作添加到主 fragment ):
  •     override fun routeMain() {
    val navController = fragment.findNavController()
    navController.setGraph(R.navigation.nav_root)
    navController.navigate(R.id.action_global_home)
    }
    Github project was updated
    enter image description here

    关于android - 喷气背包导航 : how to navigate from child of one nested graph to child from another nested graph?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69161846/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com