繁体   English   中英

何时在 Android 中使用多个 ViewModel 与共享 ViewModel?

[英]When to use multiple ViewModels vs shared ViewModel in Android?

最近,我偶然发现了共享 ViewModels 的概念,这让我很感兴趣,因为我似乎正在为我的片段编写相同的 ViewModels。

例如,我有一系列带有 RecyclerViews 的片段,它们可以导航:

Main List -> Sub List -> Item List -> Item Details 每个 Fragment 都有自己的ViewModel ,但是列表是从同一个存储库中填充的,该存储库是从同一个数据库中提取的。 唯一执行的操作是各种 get 命令,用户不对数据库进行任何修改。

在这种情况下,将我的所有存储库查询放在一个列表 ViewModel 中是否有意义?

谷歌文档看来,这听起来更像是在屏幕上有多个片段的情况下共享数据。 我可以看到如何使用它来将所选项目从一个片段发送到下一个片段,但我已经通过Navigation safeArgs很好地实现了这一点。

可能这取决于你有什么样的情况。 例如,将 state 保留在共享视图中 model 如果您的应用程序有一个复杂的safeArgs并始终从一个片段推送到另一个片段,那么您必须花时间来控制序列化/反序列化不是很好的地方是实际的 state。 但是,通过多个片段视图共享一个共同点,model 可以作为 state 的单一事实来源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM