首页 > 解决方案 > Android在片段和对话框片段之间共享ViewModel?

问题描述

如何在对话框和对话框片段之间共享相同的视图模型?我知道 viewModel 可以在活动范围内共享。但这对我来说范围太大了。

 private val model: SharedViewModel by activityViewModels()

不幸的是,我没有项目导航组件。

标签: androidandroid-fragmentsmvvmandroid-dialogfragmentandroid-viewmodel

解决方案


  1. 用来childFragmentManager显示DialogFragment

  2. 声明ViewModel内部共享Fragment

private val sharedViewModel: YourViewModel by viewModels(ownerProducer = { this })
  1. 内部DialogFragment声明ViewModel
private val sharedViewModel: YourViewModel by viewModels(ownerProducer = { requireParentFragment() })

推荐阅读