Android在片段和对话框片段之间共享ViewModel?

时间:2020-08-03 07:48:52

标签: android android-fragments mvvm android-dialogfragment android-viewmodel

如何在dialog和dialogFragment之间共享相同的viewModel?我知道viewModel可以在活动范围内共享。但这对我来说太大了。

 private val model: SharedViewModel by activityViewModels()

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

1 个答案:

答案 0 :(得分:4)

  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() })