【发布时间】:2018-12-12 16:35:46
【问题描述】:
使用新的导航架构组件,我将单个活动作为导航主机,并为我的屏幕提供多个片段。现在我有一个 EditProfileFragment,用户可以在其中单击一个按钮并打开另一个片段,其中包含一个可供选择的国家/地区列表。假设我想将该国家/地区选择的结果分享回 EditProfileFragment。总体思路是,我将为所有“编辑配置文件”操作使用一个 EditProfileViewModel。
如何在这些片段之间共享所选国家/地区?我正在考虑使用共享视图模型,但我不愿将其限定为活动,因为我不希望它在用户完成“编辑配置文件”流程时持续存在。
还有其他我应该考虑的干净/推荐的方法吗?也许是一个暂时持有该值的单身人士?
【问题讨论】:
-
完成后你能把它清除掉吗?或者在创建新片段时传递一个标志以重新开始并忽略任何陈旧/瞬态数据?
-
@Mateo 是的,我可以。我只是想知道是否有更清洁的解决方案
-
@papageorgiouk 你找到解决这个问题的好方法了吗?我面临着完全相同的情况,国家选择器片段:)
-
@DaTi 我采用了存储库模式并拥有一个用于临时保持共享状态的对象。 ViewModel 和 View(controller) 之间应该是一对一的关系,所以我认为这是最好的方法。
标签: android android-fragments android-architecture-components android-viewmodel android-architecture-navigation