Was ist der Unterschied zwischen FragmentPagerAdapter
und ViewPager mit OffScreenLimit auf 1 und FragmentStatePagerAdapter
?
Über FragmentPagerAdapter
Das Google-Handbuch sagt:
Diese Version des Pager ist am besten für den Einsatz, wenn es eine Handvoll davon gibt typischerweise mehr statische Fragmente, die durchgeblättert werden sollen, z. B. eine Menge von Registerkarten. Das Fragment jeder Seite, die der Benutzer besucht, wird beibehalten Speicher, obwohl seine Ansichtshierarchie zerstört werden kann, wenn sie nicht sichtbar ist. Dies kann dazu führen, dass eine signifikante Menge an Speicher seit dem Fragment verwendet wird Instanzen können sich auf eine beliebige Menge an Zustand halten. Für größere Sets der Seiten, betrachten Sie FragmentStatePagerAdapter.
Und über FragmentStatePagerAdapter
:
Diese Version des Pagers ist nützlicher, wenn es eine große Zahl gibt der Seiten funktioniert mehr wie eine Listenansicht. Wenn Seiten nicht sichtbar sind der Benutzer kann ihr gesamtes Fragment zerstört werden, nur die behalten gespeicherter Zustand dieses Fragments. Dies ermöglicht dem Pager, sich zu viel zu halten weniger Speicherplatz im Zusammenhang mit jeder besuchten Seite FragmentPagerAdapter auf Kosten von möglicherweise mehr Overhead wenn Zwischen den Seiten wechseln.
Ich denke, wenn ich das Offscreenlimit auf 1 setze, würde es alle Fragmente außerhalb der beiden nächsten des aktuellen Fragments zerstören, und es verhält sich ähnlich wie ein FragmentStatePagerAdapter. Ist das korrekt?
Der Unterschied ist genau so, wie er in Dokumenten geschrieben ist. Aber es kann ein wenig verwirrend sein.
FragmentPagerAdapter
enthält seine Fragmente in FragmentManager
im gelösten Zustand, während sie nicht sichtbar sind (während sie über den Grenzen des Offscreen liegen) und FragmentStatePagerAdapter
entfernt sie aus FragmentManager
.
Das offscreenPageLimit
ist etwas anderes. Alle darin enthaltenen Fragmente bleiben mit der Benutzeroberfläche verknüpft. Sobald sie vorbei sind, werden sie entweder entfernt , oder losgelöst .
Sie können es in Quellen von FragmentPagerAdapter (Zeile 121) und FragmentStatePagerAdapter (Zeile 144)
Tags und Links android android-fragments android-viewpager android-pageradapter