【发布时间】:2013-10-21 03:31:54
【问题描述】:
我在Viewpager 中使用了3 个Fragments,问题是我在Asynctask 和加载器中加载大数据。在像HTC one 这样的设备上,它工作得很好,但是,在低端设备上,它需要很多时间。这主要是因为当我实现pagerAdapter 时,我将片段放在ArrayList 中,这会在加载主活动时强制片段实例化。我需要的是它只是“加载”第一个片段(主),当用户Swype 时,加载另一个片段。它有什么方法可以实现这一目标?这是我的页面适配器
public class PagerAdapter extends FragmentPagerAdapter {
private final ArrayList<Fragment> mFragments = new ArrayList<Fragment>();
// private final ArrayList<String> titulos = new ArrayList<String>();
// private int NUM_PAGES =0;
public PagerAdapter(FragmentManager manager,int num_pages) {
super(manager);
// this.NUM_PAGES = num_pages;
}
public void addFragment(Fragment fragment,String title) {
mFragments.add(fragment);
notifyDataSetChanged();
}
@Override
public int getCount() {
//return NUM_PAGES;
return mFragments.size();
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
}
【问题讨论】:
-
尝试 pager.setOffscreenPageLimit(1);这将一次保留一个片段。
-
这将保留在“内存”中,但是每次使用 swype 时都会创建片段。
-
是的..它会刷新..
-
那你想要什么???你写道:“只有在被选中时才在 ViewPager 中加载片段”
-
我只想在它被选中时加载,但之后不再需要刷新
标签: java android android-fragments android-viewpager