6

私は、viewPagerに設定されたFragmentPagerAdapterによって管理される3つのフラグメントを持っています。Android:viewPagerでローディングフラグメントを制限する

フラグメントを1つずつ読み込みたいのですが、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); 

ありがとうございました。

答えて

8

OffscreenPageLimitのための最小値はViewPagersource code1に設定されています:

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(); 
    } 
} 
+0

ありがとうございました。 setOffscreenPageLimitを使用せずにそれを達成する別の方法はありますか? – johann

+2

フラグメントを実際に1つずつロードする必要がありますか?もしそうなら、あなたは 'ViewPager'以外に' Adapter'を使ってみたいかもしれません。あなたが本当に 'ViewPager'を望むなら、ViewPagerで[OnPageChangeListener](http://developer.android.com/reference/android/support/v4/view/ViewPager.OnPageChangeListener.html)を使用して'あなたが必要とするものは何でも行うことができます。 'onCreateView'でいくつかの基本的な初期化をしてから、' Fragment'が可視になったら集中的に作業をしなければなりません。 – antew

+0

貴重なご協力ありがとうございます!私はOnPageChangeListenerで試してみます。 – johann