從Activity返回後切換fragment的顯示

切換fragment顯示很簡單,其實就是add、show或者hide之類的,但是從activity返回後使用 transaction.commit() 並沒有達到有效的效果。
這裏是原始的切換代碼:

 /**
     * 顯示碎片
     */
    private void showFragment() {
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        //如果之前沒有添加過
        if (!fragments.get(currentIndex).isAdded()) {
            transaction
                    .hide(currentFragment)
                    .add(R.id.fl_content, fragments.get(currentIndex), "" + currentIndex);  //第三個參數爲添加當前的fragment時綁定一個tag
        } else {
            transaction
                    .hide(currentFragment)
                    .show(fragments.get(currentIndex));
        }
        currentFragment = fragments.get(currentIndex);
        //這個方法普通使用的話沒有問題,但是從界面返回執行的話就沒有效果
         transaction.commit();
    }

應該把 transaction.commit() 換成如下代碼:

 transaction.commitAllowingStateLoss()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章