6

Mam 3 fragmenty zarządzane przez FragmentPagerAdapter, ustawione na viewPager.Android: ograniczaj ładowanie fragmentów za pomocą viewPager

Chcę ładować fragmenty jeden po drugim, ale po uruchomieniu metody onCreate z FragmentActivity są wykonywane 2 pierwsze fragmenty (metoda onCreateView).

Próbowałem ograniczyć ładowanie fragmentów za pomocą metody setOffscreenPageLimit, ale nic się nie zmieniło.

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

Dziękuję za pomoc.

Odpowiedz

8

Minimalna dla OffscreenPageLimit jest ustawiony na 1 w ViewPagersource code:

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

Dziękuję. Czy jest inny sposób na osiągnięcie tego bez użycia setOffscreenPageLimit? – johann

+2

Czy fragmenty naprawdę trzeba załadować jeden po drugim? Jeśli tak, możesz chcieć użyć czegoś innego niż 'ViewPager' z' Adapter'. Jeśli naprawdę chcesz 'ViewPager' możesz użyć [OnPageChangeListener] (http://developer.android.com/reference/android/support/v4/view/ViewPager.OnPageChangeListener.html) na ViewPager i poczekać aż' Fragment' jest widoczny, aby robić cokolwiek potrzebujesz. Trzeba by po prostu zrobić kilka podstawowych inicjalizacji w 'onCreateView', a następnie wykonać intensywną pracę, gdy' Fragment' stanie się widoczny. – antew

+0

Dziękujemy za cenną pomoc! Spróbuję z OnPageChangeListener. – johann

Powiązane problemy