【发布时间】:2020-04-29 09:09:05
【问题描述】:
我有 3 个底部导航选项卡,名为 Home, Dashboard, Profile。
- 在
Home,我有Fragment1和Fragment2, - 在
Dashboard,我有Fragment3和Fragment4 - 在
Profile中,我有MyProfile和EditProfile。
现在,在Fragment2 中,一个按钮changeAvatar 可以在堆栈Profile 中打开EditProfile。因为EditProfile 应该在标签Profile 中,所以如果我不想将EditProfile 包含在Home 的navGraph 中,我该如何实现这种行为?
【问题讨论】:
-
我无法理解,您希望在导航 A 或 C 中加载片段 6?
-
@notTdar 抱歉,我进行了编辑以提高可读性。
-
你有 3 个 nav_graphs 吗?为什么不使用 1 个 Activity 和 1 个 nav_graph,其中所有 6 个片段都作为可能的目的地?
-
@muetzenflo 是的,完全使用与
NavigationAdvanceSample相同的 3 个 nav_graphs。如果我使用BottomNavigationView,如何使用 1 nav_graph ?当我回来时,每个堆栈都应该保留它的顶部片段。 -
啊,我明白了。没有得到这个要求。对不起,另一个问题:你为什么不想在 Home-nav_graph 中使用 EditProfile。如果您使用 Jetpack 的 ViewModel 方法,则使用 EditProfile 作为
Home中的“第三个”导航目的地应该没有问题。如果 BottomNavigation 是包含 navHostFragment 的活动的一部分,则可以使用 1 个 nav_graph。
标签: android navigation android-architecture-navigation android-jetpack-navigation