1,重叠分为2种:一种是Fragment背景透明,看似重叠,另一种是hide的fragment并未hide
2,相对第一种,只需设置每个Fragment的背景,即setBackground;后一种则是在第一次add时,进行隐藏上一个fragment即可;
3,相对后者处理方式,代码如下:
@Override
public void cutFragment(Fragment f1, String tag) {
mFragmentTransaction = getSupportFragmentManager().beginTransaction();
Fragment f2 = getFragmentTag(tag);
//添加fragment时,第一次会执行add,当add第二个fragment时,第一个fragment并为hide,出现重叠
if (!f2.isAdded()) {
mFragmentTransaction.hide(f1);
mFragmentTransaction.add(R.id.container, f2, tag).commit();
} else {
mFragmentTransaction.show(f2).hide(f1).commit();
}
fragment = f2;
}