package com.llf.basemodel.base;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.view.ViewGroup;
/**
* Created by llf on 2017/3/1.
* 通用的FragmentAdapter
*/
public class BaseFragmentAdapter extends FragmentPagerAdapter {
private FragmentManager fm;
BaseFragment[] fragmentList;
private String[] mTitles;
public BaseFragmentAdapter(FragmentManager fm,BaseFragment[] fragmentList) {
super(fm);
this.fm = fm;
this.fragmentList = fragmentList;
}
public BaseFragmentAdapter(FragmentManager fm, BaseFragment[] fragmentList, String[] mTitles) {
super(fm);
this.fm = fm;
this.fragmentList = fragmentList;
this.mTitles = mTitles;
}
@Override
public CharSequence getPageTitle(int position) {
return mTitles == null ? "" : mTitles[position];
}
@Override
public Fragment getItem(int position) {
return fragmentList[position];
}
@Override
public int getCount() {
if(fragmentList == null) return 0;
return fragmentList.length;
}
/**
* 这边并没有创建销毁过程,只创建一次
* @param container
* @param position
* @return
*/
@Override
public Fragment instantiateItem(ViewGroup container, int position) {
Fragment fragment = (Fragment) super.instantiateItem(container, position);
fm.beginTransaction().show(fragment).commitAllowingStateLoss();
return fragment;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
Fragment fragment = fragmentList[position];
fm.beginTransaction().hide(fragment).commitAllowingStateLoss();
}
}