我目前正在研究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);
我提前感谢您的帮助。
答案 0 :(得分:1)
在您的活动中使用以下功能
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();