Android:使用viewPager加载限制片段

joh*_*ann 6 android android-fragments android-viewpager fragmentpageradapter

我有3个片段由FragmentPagerAdapter管理,设置为viewPager.

我想逐个加载片段,但是当执行FragmentActivity的onCreate方法时,会执行2个第一个片段(onCreateView方法).

我试图用setOffscreenPageLimit方法限制片段加载但没有任何改变.

mPagerAdapter =  new MyPagerAdapter(super.getSupportFragmentManager(), fragments);
pager = (ViewPager) super.findViewById(R.id.tabviewpager);
pager.setOffscreenPageLimit(0);
pager.setAdapter(this.mPagerAdapter);
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助 .

ant*_*tew 8

源代码中OffscreenPageLimit设置的最小值为:1ViewPager

private static final int DEFAULT_OFFSCREEN_PAGES = 1;
....
public void setOffscreenPageLimit(int limit) {
    if (limit < DEFAULT_OFFSCREEN_PAGES) {
        Log.w(TAG, "Requested offscreen page limit " + limit + " too small; defaulting to " +
                DEFAULT_OFFSCREEN_PAGES);
        limit = DEFAULT_OFFSCREEN_PAGES;
    }
    if (limit != mOffscreenPageLimit) {
        mOffscreenPageLimit = limit;
        populate();
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 片段真的需要逐个加载吗?如果是这样,你可能想要使用`ViewPager`和`Adapter`之外的东西.如果你真的想要一个`ViewPager`你可以在ViewPager上使用[OnPageChangeListener](http://developer.android.com/reference/android/support/v4/view/ViewPager.OnPageChangeListener.html)并等待`片段`是可见的,可以做任何你需要的事情.您只需要在`onCreateView`中进行一些基本初始化,然后在`Fragment`变为可见时进行密集工作. (2认同)