2012-09-11 7 views
6

Ich habe einen ViewPager und FragmentPagerAdpater und 3 Fragmente, um eine Tab-Swipe-Ansicht zu implementieren. Soll der ViewPager nach dem ersten Rendern die 3 Ansichten "erinnern"?Haltermuster für ViewPager anzeigen?

Mein Problem ist, dass nach einiger Zeit die Layouts der 3 Ansichten "vergessen" sind. Das bedeutet, dass ich sie erneut aktualisieren muss und der Benutzer wird den hässlichen Teil vor der Aktualisierung sehen.

Gibt es ein View-Holder-Muster für Viewpager? Mit welcher Technik kann ich die bereits gerenderten Ansichten beibehalten oder verhindern, dass sie zerstört werden?

Antwort

14

Sie können ViewPagersetOffscreenPageLimit() verwenden, um zu steuern, wie viele Seiten im Speicher gehalten und vor dem Scrollen erstellt werden. Standardmäßig ist der Wert 1, was bedeutet, dass die aktuelle Seite im Speicher und die Seiten davor und danach beibehalten werden. Abhängig von Ihrer Seitengröße (Vollbild oder Teilbildschirm), erhöhen Sie es z. 2 verhindert, dass die Seite auf dem Bildschirm erstellt wird.

+0

Das hat tatsächlich den Trick gemacht. Danke! – xiangxin

+0

danke. es hilft mir. – QuestionAndroid

2

In Tabs Adapter nur die destroyItem() -Methode & Zitat außer Kraft setzen, um die Anweisung super

dies die Instanz Ihrer Fragmente speichern und sie pflegen müssen wieder laden und wieder

@Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
     // TODO Auto-generated method stub 
     // super.destroyItem(container, position, object); 
    } 

etwas so was.

Verwandte Themen