我有一个关于 android ViewModels 的架构问题:
假设在我的应用程序中,我有一个 Activity,里面有两个 Fragment(使用 Viewpager)。这两个片段做不同的事情(因此可能有自己的 ViewModel?),但它们也都需要各种相似的数据。
例如,如果网络连接可用或不可用(如果没有连接,则两个片段显示不同的错误 UI),或者通过来自服务器的推送并同等影响两个片段的某些用户设置。
这看起来像这样:
现在我的问题是在使用 ViewModels 时如何处理这种情况?一个视图观察多个 ViewModel 是否很好,就像我有一个用于 Activity 的 ViewModel(保持两者都需要的状态)和一个用于每个 Fragment 的 ViewModel,如下所示:
例如,这里暗示了这一点,但这不是一个好的做法,因为MVVM 中的关系通常是
视图 n - 1 视图模型 n - 1 模型
但我不确定在我的情况下,这种共享 LiveData 的正确位置在哪里?