【问题标题】:Which lifecycle methods are called when a fragment is popped off backstack片段从回栈弹出时调用哪些生命周期方法
【发布时间】:2017-11-08 16:14:50
【问题描述】:

我有 FragmentAFragmentB。 我使用add(不是替换)片段事务将 FragmentA 添加到 Activity 中。 FragmentA 中的按钮对其 Activity 进行回调,然后进行 add 片段事务以添加 FragmentB

我用 FragmentAFragmentB 中的变量值(在线获取)更新 ActionBar 的标题。

在我上面概述的片段事务之后,如果我在 FragmentB 中并按下返回按钮(现在我在 FragmentA 中),则ActionBar 仍然是 FragmentB 的。

所以我想知道当我来自 FragmentB 时在 FragmentA 上调用了哪些生命周期方法,以便我可以从那里更新 Actionbar。

【问题讨论】:

  • 您应该在onCreateView 的各个Fragment 中设置标题。因此,在您的FragmentA 中,将ActionBar 的标题设置为您想要的任何内容,并在FragmentBonCreateView 方法中执行相同的操作。让我知道这是否会产生您想要的行为。
  • 这行不通。 onCreatView 不会被调用。在这里查看stackoverflow.com/q/18634207/6215423
  • @Roseyk 尝试使用 onViewCreated 方法.....

标签: android android-fragments


【解决方案1】:

我不知道是否有一个方法在弹出回栈时调用,但你可以做的是在包含片段的 Activity 类中覆盖 onBackPressed,调用 fragmentManager.popBackStackImmediate。这个方法返回一个布尔值,如果它是真的,那么你从fragmentB 到fragmentA(或任何其他之前的fragment)。你在你的活动课上,所以你可以随心所欲地更新你的 ActionBar。 还有一件事,如果 fragmentManager.popBackStackImmediate 为真,不要调用 super.onBackPressed()!!!

【讨论】:

    【解决方案2】:

    onStart() 方法显然是适应的方法。当从 backstack 来时,它总是会被调用。

    【讨论】:

      猜你喜欢
      • 2013-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-02
      • 2014-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多