使用fragment的时候,我们为了在界面跳转的时候保存当前界面,经常会对当前fragment进行压栈处理:
fragmentManager.beginTransaction().addToBackStack(null);
但是也经常会遇到说“某个fragment”已经被添加的错误,这往往是我们在对fragment进行返回处理时出现问题。这样的问题最常出现在我们点击导航栏进行跳转的时候。
一般情况,当我们点击导航栏进行界面切换之后,之前back stack中保存的fragment也就不再需要保留了。用下面的语句可以将back stack清空,同时也可避免上述错误的出现。
FragmentManager fragmentManager=getSupportFragmentManager();
fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
参考:http://stackoverflow.com/questions/6186433/clear-back-stack-using-fragments