Was ist der Unterschied zwischen FragmentPagerAdapter
und FragmentStatePagerAdapter
?
Über FragmentPagerAdapter
sagt Googles Leitfaden:
Diese Version des Pagers ist am besten geeignet, wenn es nur eine Handvoll typischerweise statischer Fragmente gibt, die durchgeblättert werden sollen, wie z.B. eine Reihe von Registerkarten. Das Fragment jeder Seite, die der Benutzer besucht, bleibt im Speicher, obwohl ihre Ansichtshierarchie zerstört werden kann, wenn sie nicht sichtbar ist. Dies kann dazu führen, dass eine erhebliche Menge an Speicher verwendet wird, da Fragment-Instanzen eine beliebige Menge an Zustand halten können. Für größere Seitenmengen sollte man
FragmentStatePagerAdapter
in Betracht ziehen.
Und über FragmentStatePagerAdapter
:
Diese Version des Pagers ist nützlicher, wenn es eine große Anzahl von Seiten gibt, die eher wie eine Listenansicht funktionieren. Wenn Seiten für den Benutzer nicht sichtbar sind, kann ihr gesamtes Fragment zerstört werden und nur der gespeicherte Zustand dieses Fragments bleibt erhalten. Dies ermöglicht es dem Pager, im Vergleich zu
FragmentPagerAdapter
viel weniger Speicher für jede besuchte Seite zu beanspruchen, jedoch potenziell mit mehr Aufwand verbunden, wenn zwischen den Seiten gewechselt wird.
Also habe ich nur 3 Fragmente. Aber alle sind eigenständige Module mit einer großen Datenmenge.
Fragment1
verarbeitet einige Daten (die Benutzer eingeben) und gibt sie über die Aktivität in Fragment2
weiter, welches nur ein einfaches ListFragment
ist. Fragment3
ist ebenfalls ein ListFragment
.
Also meine Fragen sind: Welchen Adapter sollte ich verwenden? FragmentPagerAdapter
oder FragmentStatePagerAdapter
?