在 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]
关于android - 如何在 Activity 中使用 navGraphViewModels(不在 Fragment 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67934187/