您需要使用.replace
来切换两个片段,还需要将原始添加到 backstack 以便您可以调用它,并且您需要覆盖 back 键操作才能以这种方式运行。它看起来像这样(使用我的一个项目中的代码,使用支持库):
要显示您的第一个片段:
menu = new MenuFragment_Main(); // instantiate fragment
getSupportFragmentManager().beginTransaction().replace(R.id.pane, menu).commit(); // display fragment
要将其交换为新片段并将其添加到后台堆栈:
ListFragment_ShopListItem shoplist = new ListFragment_ShopListItem(); // instantiate fragment
getSupportFragmentManager().beginTransaction().replace(R.id.pane, shoplist).addToBackStack(null).commit(); // replace original fragment with new fragment, add original to backstack
并覆盖后退键以返回上一个片段:
public void onBackPressed() {
FragmentManager fm = getActivity().getSupportFragmentManager();
fm.popBackStack();
return;
}