MVVM中视图之间的通信

时间:2018-10-11 00:42:50

标签: android android-architecture-components android-mvvm

我是Android Architecture Components / MVVM的新手,并且想知道实现视图之间通信的最佳方法是什么。

因此,假设我有A_View,A_View_Model,B_View和B_View_Model类。 当用户与A_View交互时,我需要更新B_View(例如,显示新图像)。 A_View可以获取对B_View_Model的引用并调用会触发LiveData导致B_View更新的方法吗? 为了概括这个问题,一个视图可以访问其他ViewModel以便与其他视图进行通信吗?

Google的片段通信示例使用“通用” ViewModel进行通信。这有必要吗?我不能只使用View自己的ViewModel吗?

如果要更新多个视图,该如何处理。您是否创建了具有对多个ViewModel的引用的Controller / Presenter并相应地调用它们?

1 个答案:

答案 0 :(得分:0)

如果AB是同级,我希望父级为这两者提供viewModels并处理它们之间的任何交互。严格来说,父级将通过自己的viewModel进行此操作,并引用每个子级viewModels。

您可以在Parent_View_Model触发的A_View_Model中实现一个接口,通知父级影响B_View_Model上的适当响应。

如果BA的子视图,则只有A作为父对象,相同的模式才成立。