package com.androidex.adapter;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import com.androidex.utils.LogA;
import java.util.List;
/**
* 该适配器适用于页面较少,且只有固定几个的情况:
* 详细说明见ExFragmentPagerAdapter注释
*/
public class ExFragmentFixedPagerAdapter extends FragmentPagerAdapter {
private List<? extends Fragment> mFragments;
private boolean mFragmentItemDestoryEnable = true;
public ExFragmentFixedPagerAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getItemPosition(Object object) {
return super.getItemPosition(object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
return super.instantiateItem(container, position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
if (LogA.isDebug())
LogA.d(getClass().getSimpleName(), "~~destroyItem pos=" + position + ", fragment=" + object.hashCode() +
", destory enable=" + mFragmentItemDestoryEnable);
if (mFragmentItemDestoryEnable)
super.destroyItem(container, position, object);
}
@Override
public int getCount() {
return mFragments == null ? 0 : mFragments.size();
}
public void setFragments(List<? extends Fragment> fragments) {
mFragments = fragments;
}
public void setFragmentItemDestoryEnable(boolean enable) {
mFragmentItemDestoryEnable = enable;
}
/**
* 该方法已被弃用
*/
@Override
public void destroyItem(View container, int position, Object object) {
if (mFragmentItemDestoryEnable)
super.destroyItem(container, position, object);
}
/**
* 该方法已被弃用
*/
@Override
public Object instantiateItem(View container, int position) {
return super.instantiateItem(container, position);
}
}