如何在dialog和dialogFragment之间共享相同的viewModel?我知道viewModel可以在活动范围内共享。但这对我来说太大了。
private val model: SharedViewModel by activityViewModels()
不幸的是,我没有项目导航组件。
答案 0 :(得分:4)
使用childFragmentManager
显示DialogFragment
在ViewModel
内部声明共享Fragment
由
private val sharedViewModel: YourViewModel by viewModels(ownerProducer = { this })
DialogFragment
内声明ViewModel
由private val sharedViewModel: YourViewModel by viewModels(ownerProducer = { requireParentFragment() })