【问题标题】:Master detail flow with shared viewmodel使用共享视图模型掌握详细信息流
【发布时间】:2019-03-29 21:39:38
【问题描述】:

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

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

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

这个question 很相似,但是 cmets 中的人抱怨它过于宽泛且不清楚

【问题讨论】:

    标签: android mvvm master-detail androidx


    【解决方案1】:

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

    然后使用Fragment事务或NavigationController在master和detail之间切换。唯一的区别是两个片段不会同时在屏幕上可见,但它们仍将共享链接到父级Activity 的底层ViewModel

    也许在询问sunflower 示例时不可用。检查它,因为它实现了植物列表的主/详细信息流,这似乎是您正在寻找的。​​p>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-15
      • 1970-01-01
      相关资源
      最近更新 更多