[英]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.