【发布时间】:2019-10-03 16:18:03
【问题描述】:
我正在开发一个具有多种视图类型的回收器视图的 android 应用程序。它最初是一个基于 MVP 的应用程序,我正在尝试使用 LiveData 和 ViewModels 将其转换为基于 MVVM 的架构。我有一个主屏幕,其中列出了回收站视图中不同类型的视图。每个视图都有自己的 ViewModel 和相应的模型,因此它的主屏幕具有回收器视图作为不同视图模型的集合。
这是我第一次实现 LiveData,因此面临一些设计问题。我在这里看到了一些选项 -
我为我的 home Activity 创建了一个父 HomeViewModel,它包含一个 LiveData 对象,由不同的子 ViewModel 列表(代表不同的视图类型)组成,为它的生命周期所有者创建活动。然后我将每个视图(回收器视图的元素)从一个观察者更新到该 LiveData 对象。
我为每个子视图/视图模型创建单独的 LiveData 对象,并将家庭活动作为每个模型/实时数据的生命周期所有者,并独立于各自观察者的活动更新其视图。
我为每个子视图/视图模型创建单独的 LiveData 对象,并将各自的视图持有者类作为它们的生命周期所有者,并更新各自持有者类中的个别视图。
请帮助我提出更好的方法来处理这个问题,或者除了指定的方法之外还有其他方法。
谢谢
【问题讨论】:
标签: android mvvm android-recyclerview viewmodel android-livedata