【问题标题】:How to get a reference to the last backstack popped fragment?如何获取对最后一个 backstack 弹出片段的引用?
【发布时间】:2013-05-02 19:34:02
【问题描述】:

我添加、显示和隐藏片段。每次添加/显示片段时,我都会隐藏前一个片段并将事务添加到后台堆栈。

当用户按下后退按钮时,会弹出一个片段,我想引用它

为什么我需要参考?所以当用户继续下一个片段时我可以隐藏它。

那么,如何获得对弹出片段的引用?

EDIT-25-04-2013:

这里的代码解释了如何添加新片段,同时隐藏前一个片段。 问题是如何在从 backstack 中弹出最后一个片段后(使用后退按钮)获取对它的引用?

FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.hide(lastFragment);
fragmentTransaction.add(newFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
lastFragment = newFragment;

【问题讨论】:

  • 我认为您没有正确使用片段..如果您将它们添加到顶部和后端,为什么需要隐藏它?请发布一些代码。
  • 请更具体一些。有几十种不同的片段类型,“弹出”并没有为我敲响警钟。
  • 提供的代码和更广泛的解释。感谢您的关注。
  • 不确定你的意思,你能说明你会在哪里使用那个参考吗?在您的主机活动中?你想在哪里参考?

标签: android android-fragments


【解决方案1】:

我为每个片段使用生成的标签,将标签保存在堆栈中并持久化堆栈。这样我就可以掌握每一个片段——特别是最后一个片段。 见代码here

【讨论】:

  • 我希望我不必做你所描述的事情,但遗憾的是我认为这是唯一的方法。震惊地看到 FragmentManager.OnBackStackChangedListener 没有提供任何关于任何东西的信息!
猜你喜欢
  • 2012-03-30
  • 1970-01-01
  • 2021-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多