【发布时间】:2021-04-22 06:11:15
【问题描述】:
例如,由于 ViewModel 应该是松耦合的,我们不能将接口引用传递给 ViewModel 以从 Viewmodel 获取回调并调用片段中实现的方法。
还请提供一个示例或参考,以使用 livedata 调用具有两个或多个参数的方法。
【问题讨论】:
标签: android mvvm android-livedata android-mvvm
例如,由于 ViewModel 应该是松耦合的,我们不能将接口引用传递给 ViewModel 以从 Viewmodel 获取回调并调用片段中实现的方法。
还请提供一个示例或参考,以使用 livedata 调用具有两个或多个参数的方法。
【问题讨论】:
标签: android mvvm android-livedata android-mvvm
在 ViewModel 中创建一个实时数据变量,并在 Fragment 中将观察者附加到该变量,只要数据发生变化,就会自动调用该函数。
例如:
viewModel.loading.observe(viewLifecycleOwner, { loading ->
loading?.let {
// Here, I'm calling a new function named setLoaderVisibility
setLoaderVisibility(loader = binding.shimmerProductDetail, binding.containerBody, isLoaderVisible = loading)
}
})
如有不清楚之处,请随时询问。
【讨论】: