im在Viewpager内部使用3个片段,其在大型数据加载器中加载大数据的问题在像HTC这样的设备中运行良好,但是在低端设备需要很多时间.这是因为主要是当我实现pagerAdapter时,我把Fragments放在一个arrayList里面,这样就迫使片段在主体活动时加载.我需要它只是“加载”第一个片段(主)和用户“swype”加载其他片段.它有什么办法来实现吗?这是我的pageAdapater
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); } }
解决方法
Sun的上述方法对我来说并不奏效(也许对你来说),但是我以为我也会分享我的方法编辑.太好了很好的方法!
private boolean _hasLoadedOnce= false; // your boolean field @Override public void setUserVisibleHint(boolean isFragmentVisible_) { super.setUserVisibleHint(true); if (this.isVisible()) { // we check that the fragment is becoming visible if (isFragmentVisible_ && !_hasLoadedOnce) { new NetCheck().execute(); _hasLoadedOnce = true; } } }