Android导航架构组件可避免片段重新生成

Dan*_*roz 7 android android-fragments

我有以下流程,其中Fragment的内容中是带有各种输入字段的Form。

片段A->片段B->片段C->片段D ...

例如,当用户完全填充Frag C并移回Frag B时,所有Frag B数据都存储并保持不变,但是当移回C时,所有输入数据都将消失。想象同样的场景,用户填充了Frag A,B,并且他已经填充了Frag C字段的一半,当他导航回所有输入数据时,他选择返回Frag A,而先前的Frags(B和A),但是一旦他决定返回他所在的C,B和C中的数据就会丢失,并在每个新步骤中都将其替换为新的片段。因此,仅当返回时才保留输入数据(android后退按钮),当他打开之前曾去过的Fragment时,将创建一个新的Fragment,所有输入均为空白。

Aar*_*onJ 1

这不是停止片段重新创建的方法,但它可以解决您的问题。创建一个活动范围的 ViewModel 来保存表单数据,然后让您的片段观察此 ViewModel。ViewModel 的寿命将比片段长,因此当重新创建它们时,它们将使用您之前存储在 ViewModel 中的值。

如何实现ViewModel