使用实时数据从 MVVM 体系结构中的 ViewModel 调用片段方法的最佳方法是什么
What is the best way to call fragments method from ViewModel in MVVM architecture using live data
例如,由于 ViewModel 应该松散耦合,我们不能将接口引用传递给 ViewModel 以从 Viewmodel 获取回调并调用片段中实现的方法。
另请提供示例或参考,以使用实时数据调用具有两个或更多参数的方法。
在 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)
}
})
有什么不明白的地方尽管问。
例如,由于 ViewModel 应该松散耦合,我们不能将接口引用传递给 ViewModel 以从 Viewmodel 获取回调并调用片段中实现的方法。
另请提供示例或参考,以使用实时数据调用具有两个或更多参数的方法。
在 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)
}
})
有什么不明白的地方尽管问。