第二次从backstack中获取片段

Get fragment from backstack for second time

我目前正在开发 android 的浏览器应用程序。我正在管理带有片段的新选项卡。因此,当用户打开新选项卡 B,然后再次返回选项卡 A 时,一切正常。当他从 A 尝试再次返回 B 时出现问题。换句话说,当您尝试弹出相同的片段时,它不起作用第二次了。

这就是我添加新标签片段的方式

    android.app.Fragment f1 = new FragmentHolder();
    allFragments.add(f1);
    getFragmentManager().beginTransaction().replace(R.id.fragmentContainer, f1).addToBackStack(fragmentTags[allFragments.size()-1]).commit();

下面是我如何弹出片段

boolean chkFlag = getFragmentManager().popBackStackImmediate(currentTag.getFragmentTAG(),0);

在此先感谢您的帮助。

在 Activity、

中使用以下函数
private void loadFragmentAnimated(Fragment fragment, Bundle args, int containerId, String title)
    {
        fragment.setArguments(args);
        FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(containerId, fragment);
        fragmentTransaction.commitAllowingStateLoss();
    }

然后使用 ,

添加片段
loadFragmentAnimated(c, null, R.id.container_name, "title");

并使用

删除片段
getSupportFragmentManager().beginTransaction().remove(getSupportFragmentManager().findFragmentById(R.id.container_name)).commit();