Fragment 中的 Fragment 不能保留它们的值

Posted

技术标签:

【中文标题】Fragment 中的 Fragment 不能保留它们的值【英文标题】:Fragments within a Fragment cannot retain their values 【发布时间】:2015-05-13 07:04:23 【问题描述】:

我有一个活动,在那个活动中我有 2 个片段 A 和 B。

Fragment A 有一个 EditText 用于输入 Email

片段 B 包含 2 个片段 B1B2 可以使用底部的两个按钮进行选择片段 B。

B1 和 B2 包含一个 EditText,用于输入 NameNumber

当我输入电子邮件、姓名和号码并在片段 A 和 B 之间切换时,电子邮件值保留子片段 B1 和 B2 中的姓名和号码值会丢失。

是因为我在 B 中有嵌套的片段吗?

如何保留子片段 B1 和 B2 的值?

我是 android 新手,谁能推荐一个好的工作示例?

【问题讨论】:

这可能是相关的:***.com/questions/20550016/… 【参考方案1】:

处理 2 个以上的片段总是很痛苦。

不是最好的解决方法: 尝试使用SharedPreferences 保存并显示姓名和编号,并在需要时重新加载整个活动,以便更改生效。

【讨论】:

因为我是 android 新手,所以我正在使用文本字段对其进行测试....实际上我将在片段 A 和 B 中显示 2 个不同的 ListView。而且我不想要我的列表视图放松价值观。 你是否使用标签在片段之间切换? 我从左侧滑入的菜单中选择 Fragment A 和 B,而 Fragment B 底部有两个按钮,您可以在子片段 B1 和 B2 之间切换。 我找到了 2 个解决方案,但不知道哪一个有效,所以希望得到您的建议,请查看链接,感谢您的帮助。 ***.com/questions/29275746/… 在我的项目中,我经常使用“替换”来更改片段并最终遇到很多问题。所以我会说第一个解决方案。

以上是关于Fragment 中的 Fragment 不能保留它们的值的主要内容,如果未能解决你的问题,请参考以下文章

当 ViewPager 中的 Fragment 从 BackStack 保留时 WebView 重新加载

导航到 Jetpack Navigation 中的另一个 Fragment 后将 DialogFragment 保留在 backstack 中

理解 Fragment 的 setRetainInstance(boolean)

Navigation Components popBackStack() 是不是保留 Fragment 状态?

Fragment正规写法,不产生漏洞

当 Fragment 被替换并放入回栈(或删除)时,它是不是保留在内存中?