3

我是 Android 架构组件/MVVM 的新手,想知道实现视图之间通信的最佳方式是什么。

假设我有 A_View、A_View_Model、B_View 和 B_View_Model 类。当用户与 A_View 交互时,我需要更新 B_View(例如显示新图像)。A_View 是否可以引用 B_View_Model 并调用会触发 LiveData 导致 B_View 更新的方法?概括一下这个问题,一个 View 可以访问其他 ViewModel 与其他 View 通信吗?

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

另外,如果您想更新多个视图,您将如何处理。您是否创建了一个引用多个 ViewModel 的 Controller/Presenter 并相应地调用它们?

4

1 回答 1

1

如果AB是兄弟姐妹,我希望父级为两者提供视图模型并处理它们之间的任何交互。严格来说,父级将通过其自己的视图模型执行此操作,并引用每个子视图模型。

Parent_View_Model您可以在该触发器中实现一个接口A_View_Model,通知父级影响B_View_Model.

如果B是 的子视图A,那么同样的模式也适用,只是A作为父视图。

于 2018-10-11T02:20:26.707 回答