ViewPager2

Zeigen Sie Ansichten oder Fragmente in einem wischbaren Format an.
Letzte Aktualisierung Stabile Version Releasekandidat Beta-Ausgabe Alpharelease
24. Mai 2023 1.0.0 - 1.1.0-beta02 -

AndroidX-Abhängigkeiten

Fügen Sie der Datei build.gradle Ihres Projekts die folgende AndroidX-Abhängigkeit hinzu, um ViewPager2 zu verwenden:

Groovig

dependencies {
    implementation "androidx.viewpager2:viewpager2:1.0.0"
}

Kotlin

dependencies {
    implementation("androidx.viewpager2:viewpager2:1.0.0")
}

Feedback

Dein Feedback hilft uns, Jetpack zu verbessern. Lassen Sie uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie eine neue erstellen. Durch Klicken auf die Stern-Schaltfläche können Sie zu einem vorhandenen Problem abstimmen.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.1.0

Version 1.1.0-beta02

24. Mai 2023

androidx.viewpager2:viewpager2:1.1.0-beta02 wird freigegeben. Version 1.1.0-beta02 enthält diese Commits.

API-Änderungen

  • Der Fragmentstatus zum Speichern von Callbacks wurde zu FragmentTransactionCallback hinzugefügt. (I45b90)
  • ViewPager2 versucht jetzt nicht mehr, die fehlerhafte WindowInsets-Weiterleitung alter API-Versionen (< 30) zu reparieren, da die Korrektur selbst für Geschwister von ViewPager2 schädlich sein kann. Die Lösung ist weiterhin verfügbar, wurde jedoch als Zustimmung festgelegt, sodass Entwickler von Fall zu Fall entscheiden können. Aktivieren Sie die Korrektur, indem Sie WindowInsetsApplier.install(viewPager2)) aufrufen. (Ic9a85)

Fehlerkorrekturen

  • Behebe Kompatibilitätsprobleme mit neueren Versionen von RecyclerView. Nutzer dieser Version von ViewPager2 sollten mindestens auf RecyclerView 1.3.1-rc01 aktualisieren.

Version 1.1.0-beta01

4. August 2021

androidx.viewpager2:viewpager2:1.1.0-beta01 wird freigegeben. Version 1.1.0-beta01 enthält diese Commits.

API-Änderungen

Fehlerkorrekturen

  • Die Weiterleitung von Fenstereinfügungen wurde korrigiert. Alle Seiten erhalten jetzt dieselben Einsätze. (I47fef)

Version 1.1.0-alpha01

1. April 2020

androidx.viewpager2:viewpager2:1.1.0-alpha01 wird freigegeben. Version 1.1.0-alpha01 enthält diese Commits.

Mit diesem Release wird eine Änderung in RecyclerView 1.2.0-alpha02 begleitet, indem CollectionInfo und CollectionItemInfo ausgefüllt werden, die RecyclerView nicht mehr standardmäßig bereitstellt. Beim Aktualisieren auf RecyclerView 1.2.0-alpha02 wird auch ViewPager2 aktualisiert, um Regressionen bei der Barrierefreiheit zu vermeiden.

Neue Funktionen

  • Die FragmentTransactionCallback-Schnittstelle wurde hinzugefügt, um auf Änderungen des Fragmentlebenszyklus innerhalb von FragmentStateAdapter zu warten. (Ibda77)

Fehlerkorrekturen

  • Das FragmentStateAdapter-Problem mit der anfänglichen Sichtbarkeit des Fragmentmenüs beim Hinzufügen eines Fragments zu FragmentManager wurde behoben. (I9d2ff, b/144442240)

Version 1.0.0

Version 1.0.0

20. November 2019

androidx.viewpager2:viewpager2:1.0.0 wurde ohne Änderungen gegenüber 1.0.0-rc01 veröffentlicht. Version 1.0.0 enthält diese Commits.

Hauptfunktionen von Version 1.0.0

  • Verbesserungen gegenüber der vorherigen ViewPager-Implementierung:
    • Unterstützung für linksläufiges Layout (Rechts-nach-links)
    • Unterstützung für vertikale Ausrichtung
    • Zuverlässiger Fragment-Support (einschließlich Änderungen an der zugrunde liegenden Fragment-Sammlung)
    • Animationen für Dataset-Änderungen (einschließlich DiffUtil-Unterstützung)
  • Einfache Migration von der vorherigen ViewPager-Implementierung (API-Parität, wenn möglich). Weitere Informationen finden Sie im Migrationsleitfaden und in der Beispiel-App.

Weitere Informationen dazu, wie Sie mit ViewPager2 zwischen Fragmenten wechseln können, finden Sie in diesem Leitfaden.

Version 1.0.0-rc01

23. Oktober 2019

androidx.viewpager2:viewpager2:1.0.0-rc01 wurde ohne Änderungen seit 1.0.0-beta05 veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.

Version 1.0.0-beta05

9. Oktober 2019

androidx.viewpager2:viewpager2:1.0.0-beta05 wird freigegeben. Version 1.0.0-beta05 enthält diese Commits.

Fehlerkorrekturen

  • Fehlerkorrektur für requestFocus auf einer Seite außerhalb des Bildschirms, die eine Seitenänderung verursacht hat. Das Verhalten entspricht nun dem ursprünglichen ViewPager. (b/140656866)
  • Problem behoben, bei dem nach einem Seitenwechsel focus auf einer Seite außerhalb des Bildschirms verbleibt. Beim Wechseln der Seite ist der Fokus jetzt aufgehoben. (b/140656866)
  • Fehler bei der Reihenfolge der Fragment-pausieren / fortsetzen Transaktionen beim Ändern der Seite (wir pausieren jetzt immer das alte primäre Element, bevor das neue fortgesetzt wird). (b/139489059)
  • Fehlerkorrektur für canScrollHorizontally(int) und canScrollVertically(int): Jetzt wird angezeigt, ob ViewPager2 in die angegebene Richtung scrollen kann. (b/141848404)
  • Ein Problem in SwipeRefreshLayout wurde behoben, damit der Vorgang mit ViewPager2 besser funktioniert.

Version 1.0.0-beta04

5. September 2019

androidx.viewpager2:viewpager2:1.0.0-beta04 wird freigegeben. Die in dieser Version enthaltenen Commits finden Sie hier.

Fehlerkorrekturen

  • Fehlerkorrektur für FragmentStateAdapter Edge-Case-Problem mit Fragment Back Stack. (b/139095195)
  • Fehlerkorrektur für EditText mit bestimmten Attributkonfigurationen, die beim Tippen bzw. Fokussieren zu Scrollen/Seitensprüngen führten. (b/138044582 und b/139432498)
  • Behebung eines Problems mit ItemDecoration-Instanzen und einer Problemumgehung für die Positionierung der Overscroll-Anzeige. (b/139012032)
  • In anderen Komponenten wurden einige Probleme behoben, damit die Funktion ViewPager2 besser funktioniert: RecyclerView, NestedScrollView und Navigation.

Version 1.0.0-beta03

7. August 2019

androidx.viewpager2:viewpager2:1.0.0-beta03 wird freigegeben. Die in dieser Version enthaltenen Commits finden Sie hier.

Fehlerkorrekturen

  • Behebung des Problems FragmentStateAdapter mit vorübergehendem Fragment-Status. b/134246546
  • Probleme mit currentItem und scrollState behoben, bei denen ein Datensatz beim sanften Scrollen geändert wird (Grenzfälle werden berücksichtigt). b/137642608
  • Fehlerkorrektur für PageTransformer-Animationen (einschließlich MarginPageTransformer), die mit Animationen zum Ändern von Datensätzen in Konflikt geraten. b/134658996
  • Problem mit flüssigem Scrollen bei Animationen in großen Datensätzen wurde behoben (Grenzwert für ganzzahlige float). b/134858960

Version 1.0.0-beta02

19. Juli 2019

androidx.viewpager2:viewpager2:1.0.0-beta02 wird freigegeben. Die in dieser Version enthaltenen Commits finden Sie hier.

Fehlerkorrekturen

  • Die unbeabsichtigte Jacquard-Abhängigkeit, die in 1.0.0-beta01 eingeführt wurde, wurde entfernt. (b/137782951)

Version 1.0.0-beta01

17. Juli 2019

androidx.viewpager2:viewpager2:1.0.0-beta01 wird freigegeben. Die in dieser Version enthaltenen Commits finden Sie hier.

Fehlerkorrekturen

  • Fehlerkorrektur für ViewPager2.updateCurrentItem-Absturz beim Scrollen und Aktualisieren des Datensatzes
  • Fehlerkorrektur für NullPointerException Absturz im Zusammenhang mit ViewPager2.isLayoutRtl
  • TOUCH_SLOP_PAGING ist jetzt ein standardmäßiger Touch Slop
  • OnPageChangeCallback-Ereignisse für leere Adapter behoben (Seite 0 statt -1 für Gleichheit mit ViewPager1)

Bekannte Probleme

Version 1.0.0-alpha06

2. Juli 2019

androidx.viewpager2:viewpager2:1.0.0-alpha06 wird freigegeben. Die in dieser Version enthaltenen Commits finden Sie hier.

Dies ist unsere letzte geplante Alphaversion, bevor die API eingefroren und in die Betaversion verschoben wird. Bitte geben Sie uns Feedback zur API.

Neue Funktionen

  • Grundlagen für verbesserte Bedienungshilfen: ACTION_PAGE_RIGHT, ACTION_PAGE_DOWN usw.

API-Änderungen

  • FragmentStateAdapter: Fragments mit nicht primärem Artikel sind auf STARTED beschränkt und ihre menuVisibility ist auf „false“ gesetzt.
  • PageTransformer, MarginPageTransformer, CompositePageTransformer: Dokumentation für position behoben.

Fehlerkorrekturen

  • currentItem nach der Datensatz-/Adapteränderung behoben.
  • MarginPageTransformer mit Problem offscreenPageLimit behoben.
  • Aktionen für Bedienungshilfen im Verhalten von FakeDrag wurden behoben.

Version 1.0.0-alpha05

5. Juni 2019

androidx.viewpager2:viewpager2:1.0.0-alpha05 wird freigegeben. Die in dieser Version enthaltenen Commits finden Sie hier.

Neue Funktionen

  • ItemDecorator wurde mit einem Verhalten eingeführt, das dem RecyclerView entspricht.
  • MarginPageTransformer wurde eingeführt, um die Möglichkeit zu bieten, Platz zwischen Seiten zu schaffen (außerhalb des Seiteneinsatzes).
  • CompositePageTransformer wurde eingeführt, um die Möglichkeit zu bieten, mehrere PageTransformers zu kombinieren.

API-Änderungen

  • Die Methode FragmentStateAdapter#getItem wurde in FragmentStateAdapter#createFragment umbenannt. Der vorherige Methodenname hat sich in der Vergangenheit als Fehlerquelle erwiesen.
  • Der Wert für „OFFSCREEN_PAGE_LIMIT_DEFAULT“ wurde von „0“ zu „-1“ geändert. Bei Verwendung der OFFSCREEN_PAGE_LIMIT_DEFAULT-Konstante ist keine Änderung des Clientcodes erforderlich.

Fehlerkorrekturen

  • Das Verhalten von getCurrentItem() wurde korrigiert, wenn SCROLL_STATE_SETTLING durch einen Zug in die entgegengesetzte Richtung unterbrochen wird.
  • FragmentStateAdapter-Probleme beim Laden der Klasse, die im Kontext „Aktivitäten nicht beibehalten“ behoben wurden.
  • Die setOffscreenPageLimit-Dokumentation wurde verbessert.

Version 1.0.0-alpha04

7. Mai 2019

androidx.viewpager2:viewpager2:1.0.0-alpha04 wird freigegeben. Die in dieser Version enthaltenen Commits finden Sie hier.

Neue Funktionen

  • offscreenPageLimit: ermöglicht eine genaue Kontrolle über die Anzahl der Seiten-Views / Fragments, die in der Ansichtshierarchie beibehalten werden

API-Änderungen

  • Die Attribute orientation und isUserScrollable gehören nicht mehr zu SavedState
  • Methoden saveState und restoreState wurden in FragmentStateAdapter als endgültig ausgewählt
  • Anmerkungen zu ViewPager2.Orientation und ViewPager2.ScrollState nicht öffentlich gemacht

Fehlerkorrekturen

  • SavedState: Ein Problem mit der Wiederherstellung nach dem Löschen / Neuerstellen von Activity wurde behoben
  • SavedState: Wiederherstellung verzögert, bis der Adapter festgelegt ist
  • OnPageChangeCallback: kleinere Grenzfälle behoben

Version 1.0.0-alpha03

3. April 2019

androidx.viewpager2:viewpager2:1.0.0-alpha03 wird freigegeben. Die in dieser Version enthaltenen Commits finden Sie hier.

Neue Funktionen

  • Programmatisches Scrollen in ViewPager2 möglich: fakeDragBy(offsetPx).

API-Änderungen

  • Für FragmentStateAdapter ist jetzt ein Lifecycle-Objekt erforderlich. Zwei Dienstprogrammkonstruktoren wurden hinzugefügt, um sie vom Host FragmentActivity oder dem Host Fragment abzurufen.

Fehlerkorrekturen

  • Zahlreiche Fehlerbehebungen bei Fragment-Support:
    • Verarbeitung von Dataset-Aktualisierungen bei Minimierung oder während einer Bildschirmdrehung;
    • irrelevante Fragmente nach der Rotation entfernen
    • den gespeicherten Status entfernter Elemente wird entfernt.
  • PageChangeCallback: feste Berechnung des Seitenoffsets für Seiten mit Rändern.

Version 1.0.0-alpha02

13. März 2019

androidx.viewpager2:viewpager2:1.0.0-alpha02 wird freigegeben. Die vollständige Liste der in dieser Version enthaltenen Commits finden Sie hier.

Neue Funktionen

  • Nutzereingabe kann deaktiviert werden (setUserInputEnabled, isUserInputEnabled)

API-Änderungen

  • ViewPager2-Klasse – final

Fehlerkorrekturen

  • FragmentStateAdapter Stabilitätskorrekturen

Version 1.0.0-alpha01

7. Februar 2019

androidx.viewpager2:viewpager2 1.0.0-alpha01 wird freigegeben. Dies ist die erste Version von ViewPager2.

Neue Funktionen

  • Im Vergleich zu seinem Vorgänger android.support.v4.view.ViewPager (VP1):
    • Unterstützung für linksläufiges Layout (RTL-Layout)
    • Unterstützung für vertikale Ausrichtung
    • notifyDataSetChanged voll funktionsfähig (VP1-Fehler behoben)

API-Änderungen

  • FragmentStateAdapter ersetzt FragmentStatePagerAdapter
  • RecyclerView.Adapter ersetzt PagerAdapter
  • registerOnPageChangeCallback ersetzt addPageChangeListener

Bekannte Probleme

  • ClipToPadding
  • kein FakeDrag
  • JavaDoc
  • verschachteltes Scrollen parallel zur Ausrichtung
  • Keine Einstellung für Begrenzungen außerhalb des sichtbaren Bildschirmbereichs
  • benötigt eine bessere TabLayout-Integration
  • kein pageWidth-Setter (erzwungen: 100%/100%)
  • Seitentransformation: keine Auswahl der Hardware-/Softwareschicht; keine umgekehrte Zeichenreihenfolge
  • Aktuelles Element sichtbar lassen, wenn eine Seite vor dem aktuellen Element eingefügt wird
  • Die Tastaturnavigation sollte überarbeitet werden
  • FragmentStateAdapter Stabilitäts-/Leistungsverbesserungen werden geplant