恢复上一个片段onBackPressed()?

u3l*_*u3l 5 java android android-fragments android-fragmentactivity

我有一个HomeFragment按钮,点击时调用以下内容:

Fragment frag = new CustFragment();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.home_container, frag).commit();
Run Code Online (Sandbox Code Playgroud)

然后在我的FragmentActivity上面提到的碎片,我有:

@Override
public void onBackPressed() {

    getFragmentManager().popBackStack();
    super.onBackPressed();

}
Run Code Online (Sandbox Code Playgroud)

这就是我尝试过的,但如果我在frag片段上并按下后退按钮,它就不会回到最后一个片段(HomeFragment).相反,它会尝试返回上一个Activity,但由于没有(即之前的活动已经finish()调用过),它只会转到Android主屏幕.

我究竟做错了什么?

PS:如果我不清楚,只需在下面评论,我会尽力澄清.

Apo*_*orv 7

更改

@Override
public void onBackPressed() 
{
   getFragmentManager().popBackStack();
   super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)

@Override
public void onBackPressed() 
{
  if(getFragmentManager().getBackStackEntryCount() > 0)
    getFragmentManager().popBackStack();
  else
   super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)

fragmentManager.beginTransaction().replace(R.id.home_container, frag).commit();
Run Code Online (Sandbox Code Playgroud)

fragmentManager.beginTransaction().replace(R.id.home_container, frag).addToBackStack(null).commit();
Run Code Online (Sandbox Code Playgroud)