碎片工具類

package com.lt.an20_utils;

import android.support.annotation.AnimRes;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;

import java.util.List;

/**
 * Created by 風情萬種冷哥哥 on 2016.
 *
 */
public class FragmentHelper {

    public static void replaceFragment(FragmentManager manager, List<Fragment> list, int
            tabIndex, int layoutId, @AnimRes int enter, @AnimRes int exit) {
        FragmentTransaction transaction = manager.beginTransaction();
        //設置碎片顯示的自定義動畫
        if (enter != 0 && exit != 0) {
            transaction.setCustomAnimations(enter, exit);
        }

        transaction.replace(layoutId, list.get(tabIndex));
        transaction.commit();
    }

    public static void switchFragment(FragmentManager manager, List<Fragment> list, int
            tabIndex, int layoutId, @AnimRes int enter, @AnimRes int exit) {
        FragmentTransaction transaction = manager.beginTransaction();
        //讓當前顯示的碎片進行隱藏
        int currentTabIndex = 0;
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).isVisible()) {
                transaction.hide(list.get(i));
            }
        }
        //設置碎片顯示的自定義動畫
        if (enter != 0 && exit != 0) {
            transaction.setCustomAnimations(enter, exit);
        }
        Fragment toFragment = list.get(tabIndex);
        if (toFragment.isAdded()) {
            transaction.show(toFragment);
        } else {
            transaction.add(layoutId, toFragment);
        }
        transaction.commit();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章