我有一个疑难问题,我无法在任何地方找到解决方案。addToBackStack不起作用,关闭活动而不是弹出碎片
当我按下后退按钮时,我的应用程序不会返回到上一个片段,而是关闭活动。
我有一个活动,显示4片段:[1],[2],[3],[4]。我可以在动作栏之间切换前3个片段,我不想将它们添加到后端堆栈。
片段[4]是在片段[3]中选择的项目的详细视图。当我按[4]时,我想返回片段[3],而不是关闭应用程序。
的过渡以这种方式由活动,其中片段放置完成:
private void replaceFragment(Fragment fragment, boolean toBackStack){
if(fragment != null){
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.container, fragment);
if(toBackStack)
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
}
其中toBackStack是除了当过渡是从始终为假[3]〜[4]。
如果我在每个转换中都传递给BackStack为true,则该活动无论如何都会关闭。
因此,而不是在活动中保持状态,它可能会更好地做到这一点onBackPressed() if(getFragmentManager ().getBackStackEntryCount()> 0) getFragmentManager()。popBackStack(); – toidiu