繁体   English   中英

共享视图模型的主细节流程

[英]Master detail flow with shared viewmodel

这个Android文档页面的“片段之间共享数据”部分描述了如何使用ViewModel解决主详细信息流中所选项目的共享。 但是,该解决方案仅适用于将两个片段都放在同一Activity中的大型设备。 在较小的设备上,常用的方法是在其自己的DetailActivity包含细节片段,然后这两个片段将具有不同的ViewModel实例,因此该方法将失败。

所以我的问题是,如何将其推广到所有设备尺寸?

我有一个主意,即使在小型设备上,我也可以将两个片段放在同一活动中。 将此与我见过的主细节流程的每个实现相违背。 可以实现导航拟合。 然后, DetailActivity将仅用于显示单个项目以作为对Intent的反应。 它可以实例化SharedViewModel并将设置的项目设置为selectedItem 然后,细节片段可以以相同的方式获取SharedViewModel的实例,而无需区分两个父活动。

这个问题是相似的,但是人们在评论中抱怨这是广泛而不清楚的

为什么在较小的设备上需要使用DetailActivity 您仍然只有一个Activity可以在master和detail Fragment之间持有共享的ViewModel

然后使用Fragment事务或NavigationController在主要和详细信息之间切换。 唯一的区别是两个片段将不会在屏幕上同时显示,但它们仍将共享链接到父Activity的基础ViewModel

也许在问向日葵的例子时不可用。 对其进行检查,因为它实现了工厂列表的主/详细流程,这似乎正是您想要的。

暂无
暂无

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

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