在popBackStack之后重新创建片段

时间:2018-01-18 12:02:57

标签: android android-fragments

我有3个片段:A,B,C。

如果我去A - > B然后按回来。片段B刚刚消失,你看到片段A与交易前完全一样。

如果我去A - > C并按回(以完全相同的方式) - 片段A被重新创建! (调用onAttachFragment,onCreate,onCreateView等)。 No" onDetach永远打电话给#34;。

我无法找出区别的原因和原因。

我用" .add"只有(没有替换,没有删除)。

    getSupportFragmentManager().beginTransaction()
            .setCustomAnimations(R.anim.slide_enter_left, R.anim.slide_exit_left, R.anim.slide_enter_right, R.anim.slide_exit_right)
            .add(R.id.fragment_holder, newFrag)
            .addToBackStack(backName).commit();

如何防止重建片段A?它应该在B之下,当B退出时再次出现? 有什么想法吗?

2 个答案:

答案 0 :(得分:0)

在片段事务的addToBackStack(null)方法中使用null

getSupportFragmentManager().beginTransaction()
            .setCustomAnimations(R.anim.slide_enter_left, R.anim.slide_exit_left, R.anim.slide_enter_right, R.anim.slide_exit_right)
            .add(R.id.fragment_holder, newFrag)
            .addToBackStack(null).commit();

答案 1 :(得分:0)

好的,我找到了解决方案。

它完全与片段无关。

为了某人的缘故在这里发布同样的问题。

我在活动的onCreateOptionsMenu中创建片段A.

每次appbar菜单发生变化时都会调用。

片段C未通过菜单处理,因此在进入/退出此片段时未调用onCreateOptionsMenu,但片段B在appbar上添加了按钮,因此称为activity的onCreateOptionsMenu并且重新编写了A片段。