Nathan Castlehow
07/19/2021, 3:32 AMNathan Castlehow
07/19/2021, 3:32 AMNathan Castlehow
07/19/2021, 3:32 AMNathan Castlehow
07/19/2021, 3:33 AMNathan Castlehow
07/19/2021, 3:33 AMScott Kruse
07/19/2021, 3:42 AMNathan Castlehow
07/19/2021, 3:47 AMKefas
07/19/2021, 4:00 AMScott Kruse
07/19/2021, 4:21 AMNathan Castlehow
07/19/2021, 4:23 AMNathan Castlehow
07/19/2021, 4:24 AMIan Lake
07/19/2021, 4:24 AMKefas
07/19/2021, 4:32 AMclass FragmentScopedVM(private val navGraphScopedVM: NavGraphScopedVM)
I'm not really sure if this is a good practice though.Nathan Castlehow
07/19/2021, 5:09 AMNathan Castlehow
07/19/2021, 5:09 AMKefas
07/19/2021, 5:25 AMval navController = rememberNavController()
NavHost(navController = navController, startDestination = "nested") {
navigation(startDestination = "ScreenA", route = "nested") {
composable(route = "ScreenA") { navBackStackEntry ->
val sharedViewModel: SharedViewModel =
viewModel(navController.getBackStackEntry(navBackStackEntry.destination.parent!!.id))
val screenAViewModel: ScreenAViewModel =
viewModel(factory = object : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
return ScreenAViewModel(sharedViewModel) as T
}
})
}
composable(route = "ScreenB") { TODO() }
}
}
Kefas
07/19/2021, 5:31 AMFragment.navGraphViewModels
Nathan Castlehow
07/19/2021, 8:59 AMIan Lake
07/19/2021, 1:08 PMhiltViewModel
has the same ability to scope ViewModelsNathan Castlehow
07/20/2021, 2:49 AMNathan Castlehow
07/21/2021, 1:57 AMjulioromano
09/09/2021, 4:48 PMNathan Castlehow
09/10/2021, 1:22 AM