package com.androidex.adapter; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import android.view.ViewGroup; import com.androidex.utils.LogA; import java.util.List; /** * 该适配器适用于页面较多的情况,且固定的情况下: * 详细注释见ExFragmentStatePagerAdapter */ public class ExFragmentStateFixedPagerAdapter extends FragmentStatePagerAdapter { private List<? extends Fragment> mFragments; private boolean mFragmentItemDestoryEnable = true; private List<String> listTitle; public ExFragmentStateFixedPagerAdapter(FragmentManager fragmentManager) { super(fragmentManager); } public ExFragmentStateFixedPagerAdapter(FragmentManager fragmentManager, List<String> listTitle) { super(fragmentManager); this.listTitle = listTitle; } public void setListTitle(List<String> listTitle) { this.listTitle = listTitle; } @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 CharSequence getPageTitle(int position) { if (listTitle != null) { return listTitle.get(position); } return super.getPageTitle(position); } }