如何在不同 Fragment 的自定义视图之间共享一个 ViewModel?

问题描述 投票:0回答:0

我有一个包含 2 个片段的活动,每个片段包含各种自定义视图。

如何在这些自定义视图之间共享 ViewModel?

-碎片-

private val mainViewModel: MainViewModel by activityViewModels()

-自定义视图-

private val mainViewModel by lazy {
    ViewModelProvider(findViewTreeViewModelStoreOwner()!!).get<MainViewModel>()
}

问题是 findViewTreeViewModelStoreOwner() 返回 Fragment 而不是 Activity,创建一个新的 ViewModel 而不是共享现有的 ViewModel。

有什么方法可以在自定义视图之间共享 Activity ViewModel 吗?

java android kotlin mvvm viewmodel
© www.soinside.com 2019 - 2024. All rights reserved.