Gil*_*oot 2 java android android-fragments kotlin android-viewmodel
我有三个片段 A、B 和 C。B 和 C 是 A 的子片段。如何让这三个片段共享相同的视图模型。从这篇中等文章中,这是我应该做的:
viewModel = activity?.run {
ViewModelProviders.of(this)[SharedViewModel::class.java]
} ?: throw Exception("Invalid Activity")
}
Run Code Online (Sandbox Code Playgroud)
然而,这个是关于在两个片段和一个活动之间共享一个视图模型,所以在我的情况下它不能正常工作。
你有没有尝试过这样的事情?将您的视图模型注入您的主根片段A:
class FragmentA : Fragment() {
val viewModel: SharedViewModel by viewModels()
}
Run Code Online (Sandbox Code Playgroud)
现在你应该能够从访问该视图模型B和C这样的:
class FragmentB : Fragment() {
val viewModel: SharedViewModel by viewModels(
ownerProducer = { this.requireParentFragment() }
)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
409 次 |
| 最近记录: |