0

我正在使用ViewPager和Fragments。我偏移量设置为1(我知道它是默认值),但它仍然在开始时加载三页(0 - > 1 - > 2)而不是两个(0 - > 1)...这里有什么问题?Android ViewPager加载太多页面

private ViewPager mPager; 
private PagerAdapter mPagerAdapter; 

... 

mPager = (ViewPager) findViewById(R.id.viewpager); 
mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager()); 
mPager.setAdapter(mPagerAdapter); 
mPager.setOffscreenPageLimit(1); 

... 

private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter { 
    public ScreenSlidePagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     if (position == 0) { 
      return new InitializationFragment(); 
     } else if (position == 8) { 
      return new InitializationFragment(); 
     } else if (position == 9) { 
      return new SummaryFragment(); 
     } else { 
      return new IngredientFragment(PizzaStage.values()[position - 1], layout); 
     } 
    } 

    @Override 
    public int getCount() { 
     return NUM_PAGES; //10 
    } 
} 

回答

0

使用FragmentPagerAdapter而不是FragmentStatePagerAdapter。

0

您是否将setOffscreenPageLimit指定为偏移量?如果您在适配器中将NUM_PAGES定义为10,那么所有这10个都将被加载。至于setOffscreenPageLimit,您可以使用它设置要保留在闲置状态下的页数。不限制需要加载的片段。如果您有5个片段,并且您不希望Android每次向左/向右滑动时重新创建这些片段,则需要使用setOffscreenPageLimit。