I want to implement this:
I use a ViewPager with a FragmentStatePagerAdapter.
I started with the example from this page:
http://developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter.html
This is my ViewPager adapter:
public static class MyAdapter extends FragmentStatePagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return NUM_ITEMS;
}
@Override
public Fragment getItem(int position) {
return ArrayListFragment.newInstance(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
super.destroyItem(container, position, object);
}
}
Every page of my ViewPager contains a ListView with some data.
At the moment when I switch to a new page in ViewPager it will increase the RAM memory very quickly.
How should I remove the old fragments ?
I also used this but it does nothing:
public void destroyItem(ViewGroup container, int position, Object object) {
FragmentManager manager = ((Fragment) object).getFragmentManager();
FragmentTransaction trans = manager.beginTransaction();
trans.remove((Fragment) object);
trans.commit();
super.destroyItem(container, position, object);
}
There is also a 1-2 seconds delay after I switch quickly to a new page or old page. Is there any technique to remove that delay. If I switch to a new page and wait for 2 second then on next switch there is no more delay.
Tested on Nexus 7.