我有一个标题栏(有点像菜单)和4个片段(MAIN,A,B,C)从所述主应为返回堆栈“主/根”片段。
问题我已经是当通过菜单用户进入例如MAIN> A> B> C,如果我只是使用堆栈中它会在我不想相反的顺序去。 我需要后退按钮返回主无论用户如何导航到这3个中的一个。
我当前的代码(这是错误的,它退出应用程序时不MAIN和当前片段是由其他非主片段切换)看起来是这样的:
private void SwitchFragment(Fragment pFragment)
{
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.main_fl_fragmentcontainer, pFragment);
if (_CurrentFragment == _Frag_Main)
ft.addToBackStack(null);
ft.commit();
_CurrentFragment = pFragment;
}
您的堆栈必须包含在最大2个片段
主要是可见的主要是onBackstack / AorBorC是可见的。 用户点击返回==>主要是可见的。 用户点击返回==>申请结束
我想,A / B / C被显示在同一视图所以在这种情况下,
当用户点击你的菜单,你必须检查,如果当前显示A / B / C和由用户选择的一个替换它。
private void displayFragment(Fragment pFragment) {
Fragment fr = getSupportFragmentManager()
.findFragmentById(R.id.main_fl_fragmentcontainer);
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.main_fl_fragmentcontainer, pFragment);
if (_CurrentFragment == _Frag_Main) {
ft.addToBackStack(null);
}
ft.commit();
_CurrentFragment = pFragment;
}
可以覆盖OnBackPressed
您的活动的方法。