【问题标题】:Fragment onResume() and backStack issue片段 onResume() 和 backStack 问题
【发布时间】:2015-07-23 10:20:01
【问题描述】:

当我从另一个片段返回时,我无法恢复我的片段。

场景:

我有一个Fragment A。现在我正在使用框架布局在Fragment A 中打开多个片段:A1, A2, A3 ...

现在我正在从 A1/A2/A3 之一启动一个新的片段,比如 Fragment B ...

我正在对Fragment B 执行一些操作,现在当我弹出我的Fragment B 时,我无法获得Fragment A 的 onResume()

当我从Fragment B回来时,只需要获取 onResume()

需要任何帮助!

非常感谢!

谢谢。

【问题讨论】:

  • 不清楚您的片段是如何组织的。请提供一些细节。

标签: android android-fragments fragment fragment-backstack


【解决方案1】:

使用片段 A 的子片段管理器启动片段 A1、A2、A3,并使用主片段管理器启动片段 B。

例如: 要执行任何片段操作,我们有两个片段管理器,如果您在片段中执行任何片段操作,您应该使用 getChildFragmentManager() 代替 getSupportFragmentManager()。

现在,要启动片段 A1、A2 和 A3,您应该使用 getChildFragmentManager(),而在启动片段 B 时,您应该使用 getSupportFragmentManager()。因此,当您从片段 B 回按时,您将在片段 A 中获得 onResume 回调。

【讨论】:

  • 感谢 AK Ali .. 只执行了一些类似这样的代码 .. 让我检查一下。会更新你。
  • 感谢 AK Ali 的回复。我使用接口恢复了这个问题。将用我的解决方案向大家更新。 :)
  • 嘿AndroidHacker,我也有同样的问题,你能发布你用来解决这个问题的代码吗?
【解决方案2】:

当你添加了你的片段 B 后,你有没有使用这个命令将事务添加到 backstack 中:addToBackstack(null);这样你就可以在按回片段B并返回片段A时恢复之前的状态。

【讨论】:

  • 是的.. 我正在使用 addToBackstack(null);在启动 Fragment B 但没有成功...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-30
  • 2014-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多