Я хочу реализовать это:
Я использую ViewPager с FragmentStatePagerAdapter.
Я начал с примера с этой страницы:
http://developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter.html
Это мой адаптер ViewPager:
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);
}
}
Каждая страница моего ViewPager содержит ListView с некоторыми данными.
В тот момент, когда я переключаюсь на новую страницу в ViewPager, это очень быстро увеличивает оперативную память.
Как удалить старые фрагменты?
Я также использовал это, но ничего не делает:
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);
}
Существует также 1-2-секундная задержка после быстрого переключения на новую страницу или старую страницу. Есть ли способ удалить эту задержку. Если я переключаюсь на новую страницу и жду 2 секунды, а затем на следующем переключателе больше нет задержки.
Протестировано на Nexus 7.