天天看點

關于Activity加載Fragment切換Show和Hide重疊問題

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;
}