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。