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

How to use navGraphViewModels in Activity (Not in Fragment)

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