在片段内使用BottomNavigationView导航(不是活动),使用导航组件和导航图。

问题描述 投票:0回答:1

我有一个单身 Activity 应用。我创建了一个单一的 Navigation graph 包含所有可能的目的地(Fragment).

Activity layout 只包含 <fragment/> 容器,因为它应该是。

有一个主Fragment,包含一个 BottomNavigationView 其中用户可以导航到所有重要的目的地(其中3个)。

当我实现了 BottomNavigationView 在官方文档中的许多教程或事件中都有描述,它取代了完整的内容。Activity. 因此, BottomNavigationView 不再显示,因为它是包含在一个 Fragment 而不在 Activity. 我想让它在右边膨胀 layout 的主片段中。

我是否应该使用另一个 Navigation graph我是否应该使用一个经典的 "主片段"?Listener (但我将失去所有的兴趣使用一个 Navigation graph)?是否有我不知道的解决方案?

我如何实现它?我尝试创建两个不同的 Navigation graph但我不能把它设置为我的 BottomNavigationView

android bottomnavigationview android-architecture-navigation android-navigation-graph
1个回答
0
投票

答:我的回答是:我的回答是:我的回答是:我的回答是:我的回答是:我的回答是:我的回答是:我的回答是:我的回答是

创建第二个 Navigation graph 含有您想要的目的地 BottomNavigationView 来访问。

在包含 BottomNavigationView 一定要插入 FragmentContainerView 和一个合适的ID。

然后,由于 这个答案就在这里 你可以很容易地实现它。

只要使用这个来引用嵌套的NavHost。

val nestedNavHostFragment = childFragmentManager.findFragmentById(R.id.bottom_nav_host) as? NavHostFragment

val navController = nestedNavHostFragment?.navController

val bottomNavigationView = view.findViewById<BottomNavigationView>(R.id.bottom_navigation)

if (navController != null) {
    bottomNavigationView.setupWithNavController(navController)
} else {
    throw RuntimeException("Controller not found")
}
© www.soinside.com 2019 - 2024. All rights reserved.