这个方法适用性有限.
我的是一个mainActivity,然后下部四个按钮,点击时先隐藏所有的fragment,然后再new一个新的出来,如果存在,则直接显示出来,看上去一切都没有问题.
但是通过fragment增加的fragment在切换时就没有办法隐藏了,然后就发生重叠了,有没有什么办法了?
后来想了想,在Fragment中增加的fragment都增加到了退回栈了,那我们直接把退回栈中的所有fragment都清空不就行了吗,试了下,果然没有问题,下面是部分代码
FragmentManager Fm=getFragmentManager();
FragmentTransaction FT=Fm.beginTransaction();
hideFragments(FT);
getFragmentManager().popBackStack(null,1); //切换前弹出回退栈中所有fragment
switch (position) {
case 0:
if (fragfile ==null){
fragfile =new FileFragment();
FT.add(R.id.layFrame, fragfile,"Fone");
}else {
FT.show(fragfile);
}
break;
case 1:
if (fragtwo==null){
fragtwo=new twoFragment();
FT.add(R.id.layFrame,fragtwo,"Ftwo");
}else{
FT.show(fragtwo);
}
break;