将此代码放入活动中,然后尝试。
Fragment 之后是 Activity,因此当您使用带有标签的 addToBackStack() 片段或传递 null 时,将在 FragmentManager 的帮助下将片段添加到堆栈中。
不需要 addToBackStack()。注释此代码或传递 null
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager .beginTransaction();
fragmentTransaction .replace(R.id.fragment_container, YouNextFragment);
fragmentTransaction .addToBackStack(null);
fragmentTransaction .commit();
当您在 Activity FragmentManager中按下返回按钮时,会自动弹出最新添加的片段。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
if (getFragmentManager().getBackStackEntryCount() ==0) {
finish();
}else{
getFragmentManager().popBackStack();
}
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}