【问题标题】:Navigate to specific fragments with navigation component使用导航组件导航到特定片段
【发布时间】:2022-11-28 04:46:49
【问题描述】:
我目前有这个nav_graph.xml 文件。
具有此导航树的 Activity A(父容器):
片段 A -> 片段 B -> 片段 C -> 片段 D -> 片段 E。
另外,我有一个 Activity B,我想从此 Activity 直接导航到 Fragment C。
有谁知道我如何为这种情况实现优雅的解决方案?
我以为我可以从 Activity B -> Activity A 启动一个意图,将其作为与所需片段相对应的额外枚举传递,并且 Activity A 将处理接收到的参数,通过一个动作导航到相应的片段。你怎么看?我认为它可以改进,这就是为什么我正在寻找第二种解决方案。谢谢!
【问题讨论】:
标签:
android
android-fragments
android-jetpack-navigation
【解决方案1】:
在你的两个活动中添加这个(你的导航主机片段)
<androidx.fragment.app.FragmentContainerView
android:id="@+id/nav_view_pager_host"
android:layout_width="match_parent"
android:layout_height="670dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNav"
android:name="androidx.navigation.fragment.NavHostFragment"
app:navGraph="@navigation/main_nav_graph"
app:defaultNavHost="true"/>
然后在您的活动 B onCreate() 中添加
val navController = (supportFragmentManager.findFragmentById(R.id.nav_view_pager_host) as NavHostFragment).navController
navController.navigate(/* To your fragment B*/)
//Handle anything else you wanna ddo