如何在活动中使用navGraphViewModels(不在片段中)



在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]

相关内容

  • 没有找到相关文章

最新更新