我是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并相应地调用它们?
答案 0 :(得分:0)
如果A
和B
是同级,我希望父级为这两者提供viewModels并处理它们之间的任何交互。严格来说,父级将通过自己的viewModel进行此操作,并引用每个子级viewModels。
您可以在Parent_View_Model
触发的A_View_Model
中实现一个接口,通知父级影响B_View_Model
上的适当响应。
如果B
是A
的子视图,则只有A
作为父对象,相同的模式才成立。