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;
- }
- }
- }