在Fragment中,我们可以使用ViewModel来导航Graph。
private val viewModel: ViewModel by navGraphViewModels(R.id.youNavGraphID)
但是如何在Activity中创建具有navGraph作用域的ViewModel?或者是否有任何方法可以使ViewModel的范围限定为Activity中的导航图?在导航图被破坏后,我需要重新创建ViewModel对象实例。
谢谢。
这是一个非常晚的答案,但希望它能帮助其他人。
您可以将ViewModelProvider与NavigationController的ViewModelStoreOwner一起使用。
基本上是这样的:
val myViewModel = ViewModelProvider(
navController.getViewModelStoreOwner(navGraphId),
defaultViewModelProviderFactory
)[MyViewModel::class.java]