我有 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 或更多不同的片段,它可以正常工作。
但是如果我连续添加相同的片段,当我单击后退按钮时,它会显示相同的片段,而不是之前添加的片段。
让我解释得更好。
- 点击“显示关于片段”
- AboutFragment 添加到 MainLayout
- AboutFragment 显示在屏幕上
- 点击“显示主片段”
- MainFragment 添加到 MainLayout
- MainFragment 显示在屏幕上
- 单击“显示主要片段”(再次)
- MainFragment 被添加到 MainLayout(再次)
- MainFragment 再次显示在屏幕上
- 单击返回按钮
- MainFragment 显示在屏幕上!
当我点击后退按钮(第 10 步)时,我想显示 AboutFragment。但它再次向我展示了 MainFragment。是这样吗?还是我做错了什么?我之前需要打一个 popBackStack() 电话吗?
谢谢和对不起我的英语