我想实现这一点:
我使用带有 FragmentStatePagerAdapter 的 ViewPager。
我从这个页面的例子开始: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 中切换到新页面时,它会非常快速地增加 RAM 内存。
我应该如何去除旧碎片?
我也使用了这个,但它什么也没做:
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 上测试。