我有3个碎片(主要,关于和帮助) 我有一个菜单有3个选项(“显示主片段”,“显示片段”和“显示帮助片段”)
当我选择3个菜单选项中的一个时,我会这样做:
Fragment fragment = null;
switch (position) {
case 1:
fragment = new MainFragment();
break;
case 3:
fragment = new HelpFragment();
break;
case 4:
fragment = new AboutFragment();
break;
default:
break;
}
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.content_frame, fragment);
ft.addToBackStack(null);
ft.commit();
如果我添加2,3个或更多不同的片段,它就可以了。
但是如果我连续添加相同的片段,当我点击后退按钮时,它会显示相同的片段,而不是之前添加的片段。
让我更好地解释一下。
当我点击后退按钮(步骤10)时,我想显示AboutFragment。 但它再次向我展示了MainFragment。这是对的吗?或者我做错了什么? 我需要在之前进行一次popBackStack()调用吗?
谢谢,对不起我的英文
答案 0 :(得分:0)
按照您的步骤添加MainFragment
两次,所以当您在步骤10中点击后退按钮后再次显示时,后备堆中还有另一个MainFragment
。
如果您不想再次显示MainFragment,请不要再次将ManiFragment
添加到Backstack,然后您将返回AboutFragment