ViewPager2
Letzte Aktualisierung | Stabile Version | Release Candidate | Beta-Ausgabe | Alphaversion |
---|---|---|---|---|
14. Mai 2024 | 1.1.0 | - | – | - |
AndroidX-Abhängigkeiten
Wenn Sie ViewPager2
verwenden möchten, fügen Sie der Datei build.gradle
Ihres Projekts die folgende AndroidX-Abhängigkeit hinzu:
Groovy
dependencies { implementation "androidx.viewpager2:viewpager2:1.1.0" }
Kotlin
dependencies { implementation("androidx.viewpager2:viewpager2:1.1.0") }
Feedback
Ihr Feedback hilft uns, Jetpack zu verbessern. Bitte teilen Sie uns mit, wenn Sie neue Probleme feststellen oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können einem vorhandenen Problem Ihre Stimme geben, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.
Version 1.1.0
Version 1.1.0
14. Mai 2024
androidx.viewpager2:viewpager2:1.1.0
wurde veröffentlicht. Version 1.1.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.0.0
- Behebung von Abstürzen bei Verwendung mit RecyclerView
1.3.1-rc01
oder höher. ViewPager2
füllt jetzt dieCollectionInfo
undCollectionItemInfo
korrekt aus, die bei RecyclerView1.2.0-alpha02
und höher nicht mehr standardmäßig ausgefüllt werden.- Die
FragmentTransactionCallback
-Benutzeroberfläche wurde hinzugefügt, um Änderungen am Lebenszyklus von Fragmenten inFragmentStateAdapter
zu erfassen. - Das Problem
FragmentStateAdapter
mit der anfänglichen Sichtbarkeit des Fragmentmenüs beim Hinzufügen eines Fragments zuFragmentManager
wurde behoben. - Korrigierter Versand von Fenster-Inset: Alle Seiten erhalten jetzt dieselben Inset-Werte. Da
WindowInsets
bei älteren API-Versionen (unter API 30) gesendet werden, kann es vorkommen, dass Einblendungen für untergeordnete Ansichten nicht verfügbar sind. Wenn Sie Einblendungen auf Geräten mit einer älteren API-Version anwenden möchten, müssen Sie diese Korrektur überWindowInsetsApplier.install(viewPager2)
aktivieren.
Version 1.1.0-rc01
1. Mai 2024
androidx.viewpager2:viewpager2:1.1.0-rc01
wurde ohne nennenswerte Änderungen seit 1.1.0-beta02 veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.
Version 1.1.0-beta02
24. Mai 2023
androidx.viewpager2:viewpager2:1.1.0-beta02
wird veröffentlicht. Version 1.1.0-beta02 enthält diese Commits.
API-Änderungen
FragmentTransactionCallback
enthält jetzt Rückruffunktionen zum Speichern des Fragmentstatus. (I45b90)ViewPager2
versucht jetzt nicht mehr, den fehlerhaftenWindowInsets
-Versand von alten API-Versionen (< 30) zu korrigieren, da die Korrektur selbst schädlich für Geschwister vonViewPager2
sein kann. Die Korrektur ist weiterhin verfügbar, muss aber jetzt aktiviert werden, damit Entwickler von Fall zu Fall entscheiden können. Aktivieren Sie die Korrektur durch Aufrufen vonWindowInsetsApplier.install(viewPager2))
. (IC9a85)
Fehlerkorrekturen
- Kompatibilitätsprobleme mit neueren Versionen von
RecyclerView
behoben Nutzer dieser Version vonViewPager2
sollten auf mindestensRecyclerView
1.3.1-rc01 aktualisieren.
Version 1.1.0-beta01
4. August 2021
androidx.viewpager2:viewpager2:1.1.0-beta01
wird veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.
API-Änderungen
Upgrade von androidx auf Kotlin 1.4 (Id6471, b/165307851, b/165300826)
Für alle Androidx-Bibliotheken zur Ausrichtung auf Java 8 wechseln (2923f39)
Fehlerkorrekturen
- Der Versand von Fenster-Inset-Informationen wurde korrigiert. Alle Seiten erhalten jetzt dieselben Inset-Informationen. (I47fef)
Version 1.1.0-alpha01
1. April 2020
androidx.viewpager2:viewpager2:1.1.0-alpha01
wird veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.
Diese Version enthält eine Änderung in RecyclerView 1.2.0-alpha02. CollectionInfo
und CollectionItemInfo
werden jetzt von RecyclerView
nicht mehr standardmäßig bereitgestellt. Aktualisieren Sie beim Update auf RecyclerView 1.2.0-alpha02
auch ViewPager2
, um Rückschritte bei der Barrierefreiheit zu vermeiden.
Neue Funktionen
- Die
FragmentTransactionCallback
-Benutzeroberfläche wurde hinzugefügt, um Änderungen am Lebenszyklus von Fragmenten inFragmentStateAdapter
zu erfassen. (Ibda77)
Fehlerkorrekturen
- Das Problem
FragmentStateAdapter
mit der anfänglichen Sichtbarkeit des Fragmentmenüs beim Hinzufügen eines Fragments zuFragmentManager
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.
Wichtige Funktionen von 1.0.0
- Verbesserungen gegenüber der vorherigen ViewPager-Implementierung:
- Unterstützung für linksläufige Layouts (RTL)
- Unterstützung für vertikale Ausrichtung
- Zuverlässige
Fragment
-Unterstützung (einschließlich der Verarbeitung von Änderungen an der zugrunde liegendenFragment
-Sammlung) - Animationen zu Dataset-Änderungen (einschließlich
DiffUtil
-Unterstützung)
- Einfache Migration von der vorherigen
ViewPager
-Implementierung (API-Parität nach Möglichkeit). Weitere Informationen finden Sie im Migrationsleitfaden und in der Beispiel-App.
Weitere Informationen finden Sie im Leitfaden zur Verwendung von ViewPager2 für das Verschieben zwischen Fragmenten.
Version 1.0.0-rc01
23. Oktober 2019
androidx.viewpager2:viewpager2:1.0.0-rc01
wird seit 1.0.0-beta05
unverändert 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 veröffentlicht. Version 1.0.0-beta05 enthält diese Commits.
Fehlerkorrekturen
- Behebung eines Problems, bei dem
requestFocus
auf einer nicht sichtbaren Seite zu einer Seitenänderung führte. Das Verhalten entspricht jetzt dem des ursprünglichen ViewPager. (b/140656866) - Behebung eines Problems, bei dem
focus
nach einer Seitenänderung auf einer nicht sichtbaren Seite verblieb. Der Fokus wird jetzt beim Seitenwechsel aufgehoben. (b/140656866) - Fehlerbehebung bei der Reihenfolge der
Fragment
-Transaktionen zum Pausieren / Fortsetzen beim Wechseln der Seite. Jetzt wird das alte primäre Element immer pausiert, bevor das neue fortgesetzt wird. (b/139489059) - Korrektur für
canScrollHorizontally(int)
undcanScrollVertically(int)
: Es wird jetzt zurückgegeben, ob ViewPager2 in die angegebene Richtung scrollen kann. (b/141848404) - Ein Problem mit SwipeRefreshLayout wurde behoben, damit es besser mit ViewPager2 funktioniert.
Version 1.0.0-beta04
5. September 2019
androidx.viewpager2:viewpager2:1.0.0-beta04
wird veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
Fehlerkorrekturen
- Problem mit
FragmentStateAdapter
Grenzfallproblem mitFragment
Back-Stack behoben. (b/139095195) - Problem mit
EditText
behoben, bei dem bestimmte Attributkonfigurationen beim Tippen/Fokusieren zu einem Scrollen/Seitensprung geführt haben. (b/138044582, b/139432498) - Problem mit
ItemDecoration
-Instanzen behoben und Problemumgehung für die Positionierung des Indikators für das Überscrollen hinzugefügt (b/139012032) - Einige Fehler in anderen Komponenten wurden behoben, damit sie besser mit
ViewPager2
funktionieren: RecyclerView, NestedScrollView und Navigation.
Version 1.0.0-beta03
7. August 2019
androidx.viewpager2:viewpager2:1.0.0-beta03
wird veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
Fehlerkorrekturen
- Problembehebung für
FragmentStateAdapter
mit vorübergehendemFragment
-Status. b/134246546 - Behebung von
currentItem
- undscrollState
-Problemen, wenn ein Datensatz während des reibungslosen Scrollens geändert wird (Grenzfälle behoben). b/137642608 - Behebung eines Problems, bei dem
PageTransformer
-Animationen (einschließlichMarginPageTransformer
) mit Dataset-Änderungsanimationen in Konflikt standen. b/134658996 - Problem mit flüssigem Scrollen in großen Datensätzen behoben (
float
Ganzzahlgrenzwert). b/134858960
Version 1.0.0-beta02
19. Juli 2019
androidx.viewpager2:viewpager2:1.0.0-beta02
wird veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
Fehlerkorrekturen
- Die unbeabsichtigte Jacoco-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
wurde veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
Fehlerkorrekturen
- Behebung des Absturzes von
ViewPager2.updateCurrentItem
beim Scrollen und Aktualisieren des Datensatzes - Behebung eines Absturzes von
NullPointerException
im Zusammenhang mitViewPager2.isLayoutRtl
TOUCH_SLOP_PAGING
ist jetzt eine Standard-Touch Slop- Behebung von Problemen mit
OnPageChangeCallback
-Ereignissen für leere Adapter (Seite0
statt-1
für Übereinstimmung mitViewPager1
)
Bekannte Probleme
- Wir arbeiten noch an den noch nicht behobenen Problemen, bevor wir zur stabilen Version wechseln.
Version 1.0.0-alpha06
2. Juli 2019
androidx.viewpager2:viewpager2:1.0.0-alpha06
wird veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
Dies ist unsere letzte geplante Alphaversion, bevor die API eingefroren und in die Betaphase übergeht. Bitte gib uns Feedback zur API.
Neue Funktionen
- Grundlagen für eine verbesserte Barrierefreiheit:
ACTION_PAGE_RIGHT
,ACTION_PAGE_DOWN
usw.
API-Änderungen
FragmentStateAdapter
:Fragment
-Werte für nicht primäre Elemente sind aufSTARTED
begrenzt und ihremenuVisibility
-Werte sind auf „false“ gesetzt.PageTransformer
,MarginPageTransformer
,CompositePageTransformer
: Dokumentation zuposition
behoben.
Fehlerkorrekturen
currentItem
nach Änderung des Datensatzes / Adapters behoben.- Problem mit
MarginPageTransformer
undoffscreenPageLimit
behoben - Behobenes Verhalten von Bedienungshilfen-Aktionen in
FakeDrag
Version 1.0.0-alpha05
5. Juni 2019
androidx.viewpager2:viewpager2:1.0.0-alpha05
wurde veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
Neue Funktionen
ItemDecorator
wurde mit einem Verhalten eingeführt, das mitRecyclerView
übereinstimmt.MarginPageTransformer
wurde eingeführt, um Platz zwischen den Seiten zu schaffen (außerhalb des Seiteneinzugs).CompositePageTransformer
wurde eingeführt, um mehrerePageTransformer
s kombinieren zu können.
API-Änderungen
- Die Methode
FragmentStateAdapter#getItem
wurde inFragmentStateAdapter#createFragment
umbenannt. Der vorherige Methodenname war in der Vergangenheit eine Quelle für Fehler. - Der Wert für
OFFSCREEN_PAGE_LIMIT_DEFAULT
wurde von0
in-1
geändert. Wenn die KonstanteOFFSCREEN_PAGE_LIMIT_DEFAULT
verwendet wird, sind keine Änderungen am Clientcode erforderlich.
Fehlerkorrekturen
- Das Verhalten von
getCurrentItem()
wurde korrigiert, wennSCROLL_STATE_SETTLING
durch Ziehen in die entgegengesetzte Richtung unterbrochen wird. - Probleme mit dem Ladeprogramm von
FragmentStateAdapter
, die im Kontext „Aktivitäten nicht speichern“ behoben wurden. setOffscreenPageLimit
Dokumentation verbessert.
Version 1.0.0-alpha04
7. Mai 2019
androidx.viewpager2:viewpager2:1.0.0-alpha04
wird veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
Neue Funktionen
offscreenPageLimit
: ermöglicht eine genaue Kontrolle der Anzahl der SeitenView
/Fragment
, die in der Ansichtshierarchie gespeichert werden
API-Änderungen
- Die Attribute
orientation
undisUserScrollable
sind nicht mehr Teil vonSavedState
. saveState
undrestoreState
Methoden wurdenFragmentStateAdapter
endgültig festgelegt- Anmerkungen von
ViewPager2.Orientation
undViewPager2.ScrollState
wurden nicht mehr öffentlich zugänglich gemacht
Fehlerkorrekturen
SavedState
: Behebung eines Problems beim Wiederherstellen, wennActivity
gelöscht und neu erstellt wirdSavedState
: Wiederherstellung wird verzögert, bis der Adapter eingerichtet istOnPageChangeCallback
: Behebung kleinerer Grenzfälle
Version 1.0.0-alpha03
3. April 2019
androidx.viewpager2:viewpager2:1.0.0-alpha03
wird veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
Neue Funktionen
- Möglichkeit zum programmatischen Scrollen von ViewPager2:
fakeDragBy(offsetPx)
.
API-Änderungen
- Für
FragmentStateAdapter
ist jetzt einLifecycle
-Objekt erforderlich. Es wurden zwei Dienstkonstruktoren hinzugefügt, um die Daten vom HostFragmentActivity
oder vom HostFragment
abzurufen.
Fehlerkorrekturen
- Zahlreiche Fehlerkorrekturen für
Fragment
:- Verarbeitung von Datensatzaktualisierungen im minimierten Zustand oder bei einer Bildschirmdrehung
- irrelevante Fragmente nach der Rotation entfernen;
- Der gespeicherte Status entfernter Elemente wird entfernt.
PageChangeCallback
: Feste Berechnung des Seitenversatzes für Seiten mit Rändern.
Version 1.0.0-alpha02
13. März 2019
androidx.viewpager2:viewpager2:1.0.0-alpha02
wurde veröffentlicht. Eine vollständige Liste der Commits in dieser Version finden Sie hier.
Neue Funktionen
- Möglichkeit, die Nutzereingabe zu deaktivieren (
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 veröffentlicht. Dies ist die erste Version von ViewPager2.
Neue Funktionen
- Im Vergleich zum Vorgänger
android.support.v4.view.ViewPager
(VP1):- Unterstützung für Layouts mit einer Leserichtung von rechts nach links
- Unterstützung für vertikale Ausrichtung
notifyDataSetChanged
Vollständig funktionsfähig (VP1-Fehler behoben)
API-Änderungen
FragmentStateAdapter
ersetztFragmentStatePagerAdapter
RecyclerView.Adapter
ersetztPagerAdapter
registerOnPageChangeCallback
ersetztaddPageChangeListener
Bekannte Probleme
- clipToPadding
- no fakeDrag
- JavaDoc
- verschachtelte Scrollbalken parallel zur Ausrichtung
- keine Einstellung für die Zeit, in der der Bildschirm ausgeschaltet ist
- Bessere TabLayout-Integration erforderlich
- kein pageWidth-Setter (erzwungene 100%/100%)
- Seitentransformator: keine Auswahl der Hardware-/Softwareebene; keine umgekehrte Zeichenreihenfolge
- Aktuelles Element sichtbar lassen, wenn eine Seite vor der aktuellen Seite eingefügt wird
- Tastaturnavigation muss verbessert werden
FragmentStateAdapter
Verbesserungen bei Stabilität / Leistung