private lateinit var navController: NavController
private fun setupNavigation() {
val navHostFragment = supportFragmentManager
.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
navController = navHostFragment.navController
}
fun onCreate() {
setupNavigation()
}
Я собираюсь использовать следующую структуру: [code]MainActivity (Single Activity) └── NavHostFragment (root_nav_graph) ├── (nav_graph)= │ ├── LoginFragment │ └── RegisterFragment └── (main_nav_graph) ├── MainTabsContainerFragment │ ├── HomeNavHost │ ├── DashboardNavHost │ ├── NotificationsNavHost [/code] Но после успешного входа в систему я могу правильно отобразить main_nav_graph. Вот root_nav_graph.xml: [code]
[/code] [b]nav_graph[/b] — это [b]loginFragment[/b]. Теперь я хочу, чтобы loginFragment стал начальным пунктом назначения [b]main_nav_graph[/b]. Я пробовал: [list] [*]навигация из [b]nav_graph[/b], добавление действия и переход в LoginFragment: [code]nav_grah.xml[/code]: [code]
[/code] [code]findNavController().navigate(R.id.action_login_to_main) [/code] не работает.
[*]Добавьте действие в [b]root_nav_graph[/b] и перемещайтесь по активности [code]root_nav_graph.xml[/code]: [code]
[/code] и в действии [code]private lateinit var navController: NavController private fun setupNavigation() { val navHostFragment = supportFragmentManager .findFragmentById(R.id.nav_host_fragment) as NavHostFragment navController = navHostFragment.navController } fun onCreate() { setupNavigation() } [/code] [code]fun onLoginSuccess() { navController.navigation(R.id.action_auth_to_mainTabsContainer) } [/code]