分享一个之前项目自己写的一个Fragment切换工具类
- 首先是工具类的代码,工具类封装了Fragment的切换,添加、销毁、状态保存等方法
public class FragmentTabManager {
private Context mContext;
private FragmentManager mFragmentManager;
private int mContainerId;
private ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
private TabInfo mLastTab;
private TabHost.OnTabChangeListener mOnTabChangeListener;
public FragmentTabManager(Context context, FragmentManager fragmentManager, int containerId) {
mContext = context;
mFragmentManager = fragmentManager;
mContainerId = containerId;
}
/**
* 添加选项卡
*
* @param tag fragment的tag
* @param clazz fragment的class
* @param args fragment参数
* @return
*/
public FragmentTabManager addTab(String tag, Class<?> clazz, Bundle args) {
TabInfo tabInfo = new TabInfo(tag, clazz, args);
mTabs.add(tabInfo);
return this;
}
/**
* 获取当前的fragment
*
* @return
*/
public Fragment getCurrentFragment() {
return mLastTab == null ? null : mLastTab.fragment;
}
/**
* 获取当前选项卡的tag
*
* @return
*/
public String getCurrentTag() {
return mLastTab == null ? null : mLastTab.tag;
}
/**
* 设置