android - Android mvvm 我应该在两个视图中使用 2 个 ViewModel、1 个 ViewModel,还是在父活动中使用 1 个?
问题描述
鉴于这种情况:ProfileActivity 和 EditProfileActivity 都从 BaseActivity 扩展,每个活动是否应该有自己的视图模型(ProfileViewModel 和 EditProfileViewModel),在两个活动中使用相同的视图模型,还是从父级继承模型但在每个活动中反对它?
谢谢
解决方案
这取决于您的 ViewModel 的范围。如果您希望您的活动相互通信,那么您可以创建一个范围为您的 BaseActivity 的 BaseViewModel 并使用它在 ProfileActivity 和 EditProfileActivity 之间进行 IPC,因为它们会消耗 BaseActivity。
您还可以创建三个视图模型,每个视图模型一个。将 BaseViewModel 用于 IPC,将 ProfileViewModel 和 editProfileViewModel 用于委托,其中活动将自己点亮并将所有内容委托给它们的视图模型。这可以通过 LiveData 观察者和 DataBinding 的组合来实现。
推荐阅读
- regex - scala - 根据特殊字符提取子字符串
- c# - 无法创建 PublishProfile.xml 错误为应用服务创建新的发布配置文件
- python-3.x - 币安
使用 Python 请求,但适用于 curl - java - 使用对象作为 QueryParam 时的 Swagger 注释无法按预期工作
- r - 如何在滚动回归中解决此错误?
- php - 创建 Laravel 模型时添加额外的“状态”(类似于工厂状态)?
- r - R - 统计 - 如何知道两对值是否与两个数据集显着不同(=相关性的异常值)
- android - 双屏安卓POS系统
- postman - 使用 okHttp 发出 403 的 POST 请求,但使用 Postman 可以正常工作
- git - git stash apply 仅恢复未暂存的文件