【问题标题】:Fragment backstack and replace片段回栈和替换
【发布时间】:2019-07-11 15:01:28
【问题描述】:

我有 2 个片段 AB。我从片段A (A->B)addToBackStack() 添加了片段B。现在,当我在片段B 中并按回时一切正常并返回A

但是当我在片段C 中时,我想通过检查getFragmentManager().findFragmentByTag(""); 在片段管理器中存在 显示片段B,然后我replace 这个片段。

问题是backstack 在这种情况下不起作用。我的意思是每当我按回片段 A 时 显示。我怎样才能保留 backstack 呢?

【问题讨论】:

  • 你是否将 B 添加到 backstack 中?
  • 你的 onBackPressed() 是否调用了超级方法?
  • @VivekMishra 是的
  • @underoid 是的,我打电话。

标签: android android-fragments fragment fragmentmanager


【解决方案1】:

这是我正在使用的代码

FragmentManager fragmentManager = getFragmentManager();
            fragmentManager.popBackStack(fragment.toString(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
            FragmentTransaction tx = fragmentManager.beginTransaction();

            Log.v("on calling fragment", fragment + "==" + fragment.toString());
            tx.replace(R.id.fl_main, fragment).addToBackStack(fragment.toString());

这给出了不同的特定backstack 被替换的每个片段的字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多