【发布时间】:2020-06-23 17:11:58
【问题描述】:
我在 MainActivity 中创建了一个 ViewModel 实例并设置了一个观察者。我希望将观察到的数据放入 MainActivity 的 ViewPager 的片段之一。如何将所需的 LiveData 放入 fragment。
【问题讨论】:
我在 MainActivity 中创建了一个 ViewModel 实例并设置了一个观察者。我希望将观察到的数据放入 MainActivity 的 ViewPager 的片段之一。如何将所需的 LiveData 放入 fragment。
【问题讨论】:
使用 AndroidX 扩展委托
在 MainActivity 中:
private val activityViewModel: SomeViewModel by viewModels()
在片段中
private val activityViewModel: SomeViewModel by activityViewModels()
使用 ViewModelFactory,将 ViewModelFactory 实例放入闭包
private val activityViewModel: SomeViewModel by viewModels{ viewModelFactory }
private val activityViewModel: SomeViewModel by activityViewModels{ viewModelFactory}
【讨论】:
您可以使用共享的 ViewModel Shared ViewModel between activity and fragments
为此,您可以在片段中从活动的 viewModel 中定义一个对象,并将活动作为 viewModel 的所有者,并对其变量应用更改。
【讨论】: