如何处理碎片backstack的变化?

时间:2013-09-09 08:13:13

标签: android android-fragments

我的活动中有一些标题之王,它说现在打开了什么样的片段。没关系,当我只是将一个片段替换为另一个片段时,我在onBackPressed中处理后台堆栈更改时遇到了问题。这是onBackPressed方法中代码的一部分:

Fragment fragment = fragmentManager.findFragmentById(R.id.main_fragment);
fragmentManager.popBackStack();
fragment = fragmentManager.findFragmentById(R.id.main_fragment);

在第一行fragment=FormFragment{41f01d58 #3 id=0x7f05005f},并且在调用popBackStack之后我再次fragment=FormFragment{41f01d58 #3 id=0x7f05005f}(但它应该是另一个片段,甚至不是FormFragment实例)。

在调用popBackStack之后,有什么办法可以找出从后台堆叠中弹出的片段吗?

1 个答案:

答案 0 :(得分:2)

首先,通常您不必自己弹出碎片堆栈。如果您的活动是FragmentActivity,则其默认onBackPressed()将为您完成工作。

要在从后面的堆栈中弹出片段时更新标头,请将标头更新代码放在片段的onResume()中。