I am trying to replace fragments from my ViewPager adapter but it does not seem to work. No errors do show either. When I'm calling the replace(int, Fragment) method it does nothing. Do you have any clue why it's nto working?
public class PagerAdapter extends FragmentPagerAdapter {
private Vector<Fragment> mFragments;
private Stack<Fragment> mHiddenFragments;
public PagerAdapter(FragmentManager fm) {
super(fm);
mFragments = new Vector<Fragment>();
mHiddenFragments = new Stack<Fragment>();
}
// here is the replacement method I'm using
public void replace(int index, Fragment fragment) {
mHiddenFragments.push(mFragments.get(index));
mFragments.set(index, fragment);
notifyDataSetChanged();
}
public void replace(int index) {
mFragments.set(index, mHiddenFragments.pop());
notifyDataSetChanged();
}
public void add(Fragment fragment) {
mFragments.add(fragment);
notifyDataSetChanged();
public void remove(int index) {
mFragments.remove(index);
notifyDataSetChanged();
}
}
EDIT: The part which I can't get to work is the removing of the fragment. It seems I can only remove fragments in the ViewPager that are after the one that's currently viewed.
example: Suppose I have fragments 0 & 1 => mFragments.size() == 2
mPagerAdapter.add(new GenreListFragment());
mPagerAdapter.remove(1);