public class MyFragmentPagerAdapter extends FragmentPagerAdapter {
private List<Pair<String, Fragment>> mFragmentPair;
private FragmentManager mFragmentManager;
public MyFragmentPagerAdapter(FragmentManager fm, List<Pair<String, Fragment>> mFragmentPair) {
super(fm);
this.mFragmentManager = fm;
this.mFragmentPair = mFragmentPair;
}
@Override
public Fragment getItem(int position) {
return mFragmentPair.get(position).second;
}
@Override
public int getCount() {
return mFragmentPair.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentPair.get(position).first;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Fragment fragment = (Fragment) super.instantiateItem(container, position);
mFragmentManager.beginTransaction().show(fragment).commitAllowingStateLoss();
return fragment;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
Fragment fragment = mFragmentPair.get(position).second;
mFragmentManager.beginTransaction().hide(fragment).commitAllowingStateLoss();
}
}