Skip to content

Instantly share code, notes, and snippets.

@Sirelon
Created January 20, 2016 17:02
Show Gist options
  • Save Sirelon/ce0e959dea88b373bb9d to your computer and use it in GitHub Desktop.
Save Sirelon/ce0e959dea88b373bb9d to your computer and use it in GitHub Desktop.
package com.sirelon.widget.viewpager;
import android.app.Fragment;
import android.app.FragmentManager;
import android.os.Parcelable;
import android.support.v13.app.FragmentStatePagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import com.spit16.ui.fragment.AbsFragment;
import java.util.ArrayList;
/**
* @author romanishin
* @since 30.06.15.
*/
public class AppFragmentPagerAdapter extends FragmentStatePagerAdapter {
protected final ArrayList<? extends FragmentHolder> mFragments;
public AppFragmentPagerAdapter(FragmentManager fm, ArrayList<? extends FragmentHolder> mFragments) {
super(fm);
this.mFragments = mFragments;
}
@Override
public void restoreState(Parcelable state, ClassLoader loader) {
super.restoreState(state, loader);
for (int i = 0; i < mFragments.size(); i++) {
FragmentHolder holder = mFragments.get(i);
holder.fragment = (AbsFragment) instantiateItem(null, i);
}
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position).fragment;
}
@Override
public CharSequence getPageTitle(int position) {
return mFragments.get(position).title;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
super.destroyItem(container, position, object);
mFragments.remove(position);
}
@Override
public void destroyItem(View container, int position, Object object) {
super.destroyItem(container, position, object);
}
@Override
public int getCount() {
return mFragments.size();
}
public static class FragmentHolder {
public AbsFragment fragment;
public String title;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment