fragment切換封裝的方法

/**
 * 切換Fragment的顯示
 *
 * @param target 要切換的 Fragment
 */
private void switchFragment(Fragment target) {

    // 如果當前的fragment 就是要替換的fragment 就直接return
    if (currentFragment == target) return;

    // 獲得 Fragment 事務
    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

    // 如果當前Fragment不爲空,則隱藏當前的Fragment
    if (currentFragment != null) {
        transaction.hide(currentFragment);
    }

    // 如果要顯示的Fragment 已經添加了,那麼直接 show
    if (target.isAdded()) {
        transaction.show(target);
    } else {
        // 如果要顯示的Fragment沒有添加,就添加進去
        transaction.add(R.id.fl_content, target, target.getClass().getName());
    }

    // 事務進行提交
    transaction.commit();

    //並將要顯示的Fragment 設爲當前的 Fragment
    currentFragment = target;
}
發佈了12 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章