Visualizzazione pagina 2
Aggiornamento più recente | Release stabile | Candidato di rilascio | Versione beta | Versione alpha |
---|---|---|---|---|
24 maggio 2023 | 1.0.0 | - | 1.1.0-beta02 | - |
Dipendenze AndroidX
Per utilizzare ViewPager2
, aggiungi la seguente dipendenza AndroidX al file build.gradle
del tuo progetto:
Trendy
dependencies { implementation "androidx.viewpager2:viewpager2:1.0.0" }
Kotlin
dependencies { implementation("androidx.viewpager2:viewpager2:1.0.0") }
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Contattaci se scopri nuovi problemi o hai idee per migliorare la libreria. Dai un'occhiata ai problemi esistenti in questa libreria prima di crearne uno nuovo. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per ulteriori informazioni, consulta la documentazione di Issue Tracker.
Versione 1.1.0
Versione 1.1.0-beta02
24 maggio 2023
androidx.viewpager2:viewpager2:1.1.0-beta02
viene rilasciato. La versione 1.1.0-beta02 contiene questi commit.
Modifiche alle API
- È stato aggiunto lo stato del frammento a
FragmentTransactionCallback
per il salvataggio dei callback. (I45b90) - Ora
ViewPager2
non prova più a correggere l'invio non funzionante diWindowInsets
delle versioni API precedenti (< 30), perché la correzione stessa può essere dannosa per i fratelli diViewPager2
. La correzione è ancora disponibile, ma è stata attivata tramite attivazione, in modo che gli sviluppatori possano decidere caso per caso. Attiva la correzione chiamando il numeroWindowInsetsApplier.install(viewPager2))
. (Ic9a85)
Correzioni di bug
- Risolvi i problemi di compatibilità con le versioni più recenti di
RecyclerView
. Gli utenti di questa versione diViewPager2
devono eseguire l'aggiornamento ad almenoRecyclerView
1.3.1-rc01.
Versione 1.1.0-beta01
4 agosto 2021
androidx.viewpager2:viewpager2:1.1.0-beta01
viene rilasciato. La versione 1.1.0-beta01 contiene questi commit.
Modifiche alle API
Esegui l'upgrade di Androidx per utilizzare Kotlin 1.4 (Id6471, b/165307851, b/165300826)
Passa a Java 8 come target per tutte le librerie Androidx (2923f39)
Correzioni di bug
- Risolto l'invio di riquadri di finestre, ora tutte le pagine hanno gli stessi riquadri. (I47fef)
Versione 1.1.0-alpha01
1° aprile 2020
androidx.viewpager2:viewpager2:1.1.0-alpha01
viene rilasciato. La versione 1.1.0-alpha01 contiene questi commit.
Questa release accompagna una modifica in RecyclerView 1.2.0-alpha02 mediante il completamento di CollectionInfo
e CollectionItemInfo
che RecyclerView
non fornisce più per impostazione predefinita. Quando esegui l'aggiornamento a RecyclerView 1.2.0-alpha02
, aggiorna anche ViewPager2
per evitare regressioni dell'accessibilità.
Nuove funzionalità
- È stata aggiunta l'interfaccia
FragmentTransactionCallback
per ascoltare le modifiche del ciclo di vita dei frammenti che si verificano all'interno diFragmentStateAdapter
. (Ibda77)
Correzioni di bug
- È stato risolto il problema di
FragmentStateAdapter
relativo alla visibilità iniziale del menu del frammento durante l'aggiunta di un frammento aFragmentManager
. (I9d2ff, b/144442240)
Versione 1.0.0
Versione 1.0.0
20 novembre 2019
androidx.viewpager2:viewpager2:1.0.0
viene rilasciato senza modifiche dalla versione 1.0.0-rc01. La versione 1.0.0 contiene questi commit.
Funzionalità principali della versione 1.0.0
- Miglioramenti rispetto all'implementazione precedente di ViewPager:
- Supporto del layout RTL (da destra a sinistra)
- Supporto per l'orientamento verticale
- Assistenza
Fragment
affidabile (inclusa la gestione delle modifiche alla raccoltaFragment
sottostante) - Animazioni di modifica del set di dati (incluso il supporto
DiffUtil
)
- Migrazione facile dall'implementazione precedente di
ViewPager
(parità API ove possibile). Consulta la guida alla migrazione e l'app di esempio.
Consulta la guida sull'utilizzo di ViewPager2 per scorrere tra i frammenti.
Versione 1.0.0-rc01
23 ottobre 2019
androidx.viewpager2:viewpager2:1.0.0-rc01
viene rilasciato senza modifiche dal giorno 1.0.0-beta05
. La versione 1.0.0-rc01 contiene questi commit.
Versione 1.0.0-beta05
9 ottobre 2019
androidx.viewpager2:viewpager2:1.0.0-beta05
viene rilasciato. La versione 1.0.0-beta05 contiene questi commit.
Correzioni di bug
- Correzione di
requestFocus
in una pagina fuori schermo che causava un cambio di pagina. Il comportamento è ora coerente con il ViewPager originale. (b/140656866) - Correzione del problema del
focus
rimasto su una pagina fuori schermo dopo un cambio di pagina. Ora lo stato attivo viene cancellato quando cambi pagina. (b/140656866) - Correzione dell'ordine di
Fragment
in pausa / ripresa delle transazioni durante la modifica della pagina (ora mettiamo sempre in pausa il vecchio elemento principale prima di ripristinare quello nuovo). (b/139489059) - Correzione per
canScrollHorizontally(int)
ecanScrollVertically(int)
: ora tornano se ViewPager2 può scorrere nella direzione specificata. (b/141848404) - È stato risolto un problema in ScorriAggiornaLayout per funzionare meglio con ViewPager2.
Versione 1.0.0-beta04
5 settembre 2019
androidx.viewpager2:viewpager2:1.0.0-beta04
viene rilasciato. I commit inclusi in questa versione sono disponibili qui.
Correzioni di bug
- Correzione di
FragmentStateAdapter
problema relativo alle maiuscole/minuscole conFragment
. (b/139095195) - Correzione del problema
EditText
a causa di determinate configurazioni degli attributi che causavano scorrimento/intervallo di pagina durante la digitazione o lo stato attivo. (b/138044582, b/139432498) - Correzione di un problema con le istanze
ItemDecoration
e di una soluzione alternativa per il posizionamento dell'indicatore di scorrimento eccessivo. (b/139012032) - Sono stati risolti diversi problemi in altri componenti per un funzionamento ottimale con
ViewPager2
: RecyclerView, NestedscrollView e Navigazione.
Versione 1.0.0-beta03
7 agosto 2019
androidx.viewpager2:viewpager2:1.0.0-beta03
viene rilasciato. I commit inclusi in questa versione sono disponibili qui.
Correzioni di bug
- Correzione del problema
FragmentStateAdapter
con statoFragment
temporaneo. b/134246546 - Correzione dei problemi relativi a
currentItem
escrollState
in caso di modifica di un set di dati durante lo scorrimento fluido (casi limite risolti). b/137642608 - Correzione per
PageTransformer
(inclusoMarginPageTransformer
) animazioni in conflitto con animazioni di modifica del set di dati. b/134658996 - Correzione per le animazioni con scorrimento fluido in set di dati di grandi dimensioni (limite del valore intero di
float
). b/134858960
Versione 1.0.0-beta02
19 luglio 2019
androidx.viewpager2:viewpager2:1.0.0-beta02
viene rilasciato. I commit inclusi in questa versione sono disponibili qui.
Correzioni di bug
- È stata rimossa la dipendenza jacoco involontaria introdotta in
1.0.0-beta01
. (b/137782951)
Versione 1.0.0-beta01
17 luglio 2019
androidx.viewpager2:viewpager2:1.0.0-beta01
viene rilasciato. I commit inclusi in questa versione sono disponibili qui.
Correzioni di bug
- Correzione dell'arresto anomalo di
ViewPager2.updateCurrentItem
durante lo scorrimento e l'aggiornamento del set di dati - Correzione di
NullPointerException
arresto anomalo relativo aViewPager2.isLayoutRtl
TOUCH_SLOP_PAGING
ora è un'area di tocco predefinitaOnPageChangeCallback
eventi corretti per gli adattatori vuoti (pagina0
anziché-1
per la parità conViewPager1
)
Problemi noti
- Stiamo ancora lavorando sui problemi ancora da risolvere prima di passare alla versione stabile
Versione 1.0.0-alpha06
2 luglio 2019
androidx.viewpager2:viewpager2:1.0.0-alpha06
viene rilasciato. I commit inclusi in questa versione sono disponibili qui.
Questa è la nostra ultima versione alpha pianificata prima di bloccare l'API e passare alla versione beta. Inviaci il tuo feedback sull'API.
Nuove funzionalità
- Nozioni di base per una migliore accessibilità:
ACTION_PAGE_RIGHT
,ACTION_PAGE_DOWN
ecc.
Modifiche alle API
FragmentStateAdapter
: gli elementiFragment
non principali sono limitati aSTARTED
e il loromenuVisibility
è impostato su false.PageTransformer
,MarginPageTransformer
,CompositePageTransformer
: documentazione perposition
corretta.
Correzioni di bug
currentItem
dopo la modifica del set di dati o dell'adattatore corretto.MarginPageTransformer
conoffscreenPageLimit
problema risolto.- Comportamento delle azioni di accessibilità in
FakeDrag
corretto.
Versione 1.0.0-alpha05
5 giugno 2019
androidx.viewpager2:viewpager2:1.0.0-alpha05
viene rilasciato. I commit inclusi in questa versione sono disponibili qui.
Nuove funzionalità
ItemDecorator
introdotto con un comportamento coerente conRecyclerView
.- Abbiamo introdotto
MarginPageTransformer
per offrire la possibilità di creare uno spazio tra le pagine (al di fuori del riquadro di pagina). - Abbiamo introdotto
CompositePageTransformer
per offrire la possibilità di combinare piùPageTransformer
.
Modifiche alle API
FragmentStateAdapter#getItem
rinominato inFragmentStateAdapter#createFragment
. In passato il nome del metodo precedente ha dimostrato di essere fonte di bug.- Valore di
OFFSCREEN_PAGE_LIMIT_DEFAULT
cambiato da0
a-1
. Non è necessario modificare il codice client se viene usata laOFFSCREEN_PAGE_LIMIT_DEFAULT
costante.
Correzioni di bug
- Il comportamento di
getCurrentItem()
è stato corretto quandoSCROLL_STATE_SETTLING
viene interrotto da un trascinamento nella direzione opposta. FragmentStateAdapter
problemi di caricamento delle classi risolti nel contesto "Non conservare le attività".- Documentazione di
setOffscreenPageLimit
migliorata.
Versione 1.0.0-alpha04
7 maggio 2019
androidx.viewpager2:viewpager2:1.0.0-alpha04
viene rilasciato. I commit inclusi in questa versione sono disponibili qui.
Nuove funzionalità
offscreenPageLimit
: consente un controllo rigoroso del numero di pagineView
/Fragment
mantenute nella gerarchia delle visualizzazioni.
Modifiche alle API
- Gli attributi
orientation
eisUserScrollable
non fanno più parte diSavedState
- Metodi
saveState
erestoreState
resi definitivi inFragmentStateAdapter
- Annotazioni
ViewPager2.Orientation
eViewPager2.ScrollState
rese non pubbliche
Correzioni di bug
SavedState
: è stato risolto un problema relativo al ripristino quandoActivity
viene eliminato / ricreatoSavedState
: ripristino ritardato finché non viene configurato l'adattatoreOnPageChangeCallback
: casi limite minori risolti
Versione 1.0.0-alpha03
3 aprile 2019
androidx.viewpager2:viewpager2:1.0.0-alpha03
viene rilasciato. I commit inclusi in questa versione sono disponibili qui.
Nuove funzionalità
- Possibilità di scorrere in modo programmatico ViewPager2:
fakeDragBy(offsetPx)
.
Modifiche alle API
FragmentStateAdapter
ora richiede un oggettoLifecycle
. Sono stati aggiunti due costruttori di utilità per ottenerla dall'hostFragmentActivity
o dall'hostFragment
.
Correzioni di bug
- Numerose correzioni relative all'assistenza
Fragment
:- gestire gli aggiornamenti del set di dati riducendo al minimo o durante una rotazione dello schermo;
- rimozione di frammenti irrilevanti dopo la rotazione;
- rimuovendo lo stato salvato degli elementi rimossi.
PageChangeCallback
: corretto calcolo dell'offset di pagina per le pagine con margini.
Versione 1.0.0-alpha02
13 marzo 2019
androidx.viewpager2:viewpager2:1.0.0-alpha02
viene rilasciato. L'elenco completo dei commit inclusi in questa versione è disponibile qui.
Nuove funzionalità
- Possibilità di disattivare l'input utente (
setUserInputEnabled
,isUserInputEnabled
)
Modifiche alle API
- ViewPager2 finale del corso
Correzioni di bug
FragmentStateAdapter
correzioni di stabilità
Versione 1.0.0-alpha01
7 febbraio 2019
androidx.viewpager2:viewpager2 1.0.0-alpha01
viene rilasciato. Questa è la prima versione di ViewPager2.
Nuove funzionalità
- Confronto con il predecessore
android.support.v4.view.ViewPager
(VP1):- Supporto del layout da destra a sinistra (RTL)
- Supporto per l'orientamento verticale
notifyDataSetChanged
perfettamente funzionante (bug VP1 corretti)
Modifiche alle API
FragmentStateAdapter
sostituisceFragmentStatePagerAdapter
RecyclerView.Adapter
sostituiscePagerAdapter
registerOnPageChangeCallback
sostituisceaddPageChangeListener
Problemi noti
- clipToPadding
- nessun falsoTrascinamento
- JavaDoc
- scorrimento nidificato parallelo all'orientamento
- nessun controllo limite fuori schermo
- richiede una migliore integrazione TabLayout
- nessun valore di impostazione della larghezza di pagina (100%/100% forzato)
- trasformatore di pagina: nessuna scelta di livello hardware/software; nessun ordine di disegno inverso
- mantiene visibile l'elemento corrente quando si inserisce una pagina prima di questo
- la navigazione da tastiera richiede interventi
FragmentStateAdapter
miglioramenti di stabilità / prestazioni in arrivo