Tôi muốn thực hiện điều này:
Tôi sử dụng một ViewPager với một FragmentStatePagerAdapter.
tôi bắt đầu với ví dụ từ trang này:
http://developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter.htmlLàm thế nào để tiêu diệt các mảnh vỡ cũ trong FragmentStatePagerAdapter
Đây là bộ chuyển đổi ViewPager tôi:
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);
}
}
Mỗi trang của ViewPager tôi chứa một ListView với một số dữ liệu. Hiện tại khi tôi chuyển sang một trang mới trong ViewPager, nó sẽ tăng bộ nhớ RAM rất nhanh chóng.
Tôi nên xóa các đoạn cũ như thế nào?
Tôi cũng sử dụng điều này, nhưng nó không làm gì:
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);
}
Ngoài ra còn có một sự chậm trễ 1-2 giây sau khi tôi chuyển đổi một cách nhanh chóng đến một trang mới hoặc trang cũ. Có kỹ thuật nào để loại bỏ sự chậm trễ đó không. Nếu tôi chuyển sang một trang mới và chờ 2 giây thì chuyển đổi tiếp theo sẽ không còn chậm trễ nữa.
Thử nghiệm trên Nexus 7.
Bạn có giải pháp nào cho vấn đề này không? –
xin vui lòng cung cấp giải pháp của bạn @vovahost – jyomin