android - 如何在 Activity 中使用 navGraphViewModels(不在 Fragment 中)

标签 android navigation viewmodel android-viewmodel

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

相关文章:

android - 递归 startActivity()

android - 无法使用模拟器在 SQLite 中插入新记录

c# - 如何在 MVC3 中的回发时获取 View 模型的子集合?

asp.net-mvc - ASP.NET MVC 表单处理未知数量的输入

android - cr_VariationsUtils : Failed reading seed file

java - 如何获取我当前位置的街道的车道数?

Java android Open Street map 不显示 map

navigation - block 、 flutter 和导航

flutter - 如何在 Flutter 中的小部件树中将新 MaterialPageRoute 作为子项打开

jquery - 在 Web 应用程序中实现类似 iPhone 的内容 slider