создать NavGraph программно, который включает только другие navGraphs
Я пытаюсь программно построить navGraph и связать его с bottomNavigationView. Я должен сделать это программно, потому что я получил порядок элементов и видны ли они с сервера.
Если я создаю navGraph с помощью xml, он работает, но когда я пытаюсь построить navGraph программно, это не удается, это navGraph в xml:
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/dummy_graph"
app:startDestination="@+id/home_nav_graph">
<include app:graph="@navigation/home_nav_graph" />
<include app:graph="@navigation/guide_nav_graph" />
<include app:graph="@navigation/recordings_nav_graph" />
</navigation>
Если я использую этот navGraph xml, он работает, но если попытаться создать его с помощью navController.createGraph, он выйдет из строя, поскольку не может найти начальный пункт назначения:
val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController
navController.graph = navController.createGraph(
startDestination = R.id.home_nav_graph
) {
R.id.home_nav_graph
R.id.guide_nav_graph
R.id.recordings_nav_graph
}
findViewById<BottomNavigationView(R.id.bottom_navigation)
.setupWithNavController(navController)
```
The app crashes: java.lang.IllegalArgumentException: navigation destination 2131231236 is not a direct child of this NavGraph
Is there a way to create a dynamic navGraph that includes other navGraphs inside?