【发布时间】:2019-02-01 03:27:52
【问题描述】:
这是关于 LiveData 和 android 上的 MVVM 模式的一个更“概念性”的问题:我已经开始编写一个应用程序,我在屏幕上有多个按钮用于不同的操作,如果我在用户单击其中一个时理解正确的话按钮,ViewModel 应该处理它,然后通过 LiveData 更新 ui (Activity/fragment);问题是,对于 4 个按钮,我需要实现 4 个不同的 LiveData 实例才能订阅活动,还有其他解决方案吗? 到目前为止,我考虑过创建一个 State 数据类并在单击按钮时进行更新(然后将实例提供给 ui 进行渲染)这样可以吗?但是在活动中,您又遇到了一个问题,即您必须检查状态类的每个属性并相应地更新 ui,那么在我的情况下您会怎么做?
【问题讨论】:
-
您需要的可能是
sealed class定义您的不同状态。我认为这篇中等文章完全符合您的要求,并且很好地解释了如何为此目的使用密封类:medium.com/@trionkidnapper/…希望您会发现它有用。 -
非常感谢,那篇文章真的很有帮助,这是一个完美的解决方案!
-
不客气。我会将其复制为答案,以便以后访问该问题的人更容易。
标签: android kotlin android-viewmodel