【发布时间】:2016-07-22 15:15:50
【问题描述】:
我在 android 中遇到 popBackStack 的问题。我有 3 个导航抽屉 FragA、FragB、FragC 的 MenuItem。我的问题是,当我单击 FragA,然后单击 FragB,然后单击 FragC,我的总片段将计为 3。然后按回,它将删除 FragC 并恢复 FragB . 我希望当我按下 Back 时它会返回到 FragA。下面是我的代码。请给我一些解决方案。提前致谢。
添加片段堆栈时的代码。
Fragment fragment = null;
if(menuItem.getItemId() == R.id.home){
fragment = new FirstFragment();
}
if(menuItem.getItemId() == R.id.setting){
fragment = new SecondFragment();
}
if(menuItem.getItemId()==R.id.trash){
fragment = new ThirdFragment();
}
this.replaceFragment2(fragment);
方法替换片段
private void replaceFragment2(Fragment fragment){
String backStatName = fragment.getClass().getName();
FragmentManager manager = getSupportFragmentManager();
boolean fragmentPopped = manager.popBackStackImmediate(backStatName,0);
if(!fragmentPopped){ //if fragment not in backstack
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.flContent,fragment);
transaction.addToBackStack(backStatName);
transaction.commit();
}
}
【问题讨论】:
标签: android