Visualizzazione pagina 2

Visualizza le visualizzazioni o i frammenti in un formato a scorrimento.
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.

Crea un nuovo problema

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 di WindowInsets delle versioni API precedenti (< 30), perché la correzione stessa può essere dannosa per i fratelli di ViewPager2. La correzione è ancora disponibile, ma è stata attivata tramite attivazione, in modo che gli sviluppatori possano decidere caso per caso. Attiva la correzione chiamando il numero WindowInsetsApplier.install(viewPager2)). (Ic9a85)

Correzioni di bug

  • Risolvi i problemi di compatibilità con le versioni più recenti di RecyclerView. Gli utenti di questa versione di ViewPager2 devono eseguire l'aggiornamento ad almeno RecyclerView 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

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 di FragmentStateAdapter. (Ibda77)

Correzioni di bug

  • È stato risolto il problema di FragmentStateAdapter relativo alla visibilità iniziale del menu del frammento durante l'aggiunta di un frammento a FragmentManager. (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 raccolta Fragment 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) e canScrollVertically(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 con Fragment. (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 stato Fragment temporaneo. b/134246546
  • Correzione dei problemi relativi a currentItem e scrollState in caso di modifica di un set di dati durante lo scorrimento fluido (casi limite risolti). b/137642608
  • Correzione per PageTransformer (incluso MarginPageTransformer) 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 a ViewPager2.isLayoutRtl
  • TOUCH_SLOP_PAGING ora è un'area di tocco predefinita
  • OnPageChangeCallback eventi corretti per gli adattatori vuoti (pagina 0 anziché -1 per la parità con ViewPager1)

Problemi noti

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 elementi Fragment non principali sono limitati a STARTED e il loro menuVisibility è impostato su false.
  • PageTransformer, MarginPageTransformer, CompositePageTransformer: documentazione per positioncorretta.

Correzioni di bug

  • currentItem dopo la modifica del set di dati o dell'adattatore corretto.
  • MarginPageTransformer con offscreenPageLimit 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 con RecyclerView.
  • 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 in FragmentStateAdapter#createFragment. In passato il nome del metodo precedente ha dimostrato di essere fonte di bug.
  • Valore di OFFSCREEN_PAGE_LIMIT_DEFAULT cambiato da 0 a -1. Non è necessario modificare il codice client se viene usata la OFFSCREEN_PAGE_LIMIT_DEFAULTcostante.

Correzioni di bug

  • Il comportamento di getCurrentItem() è stato corretto quando SCROLL_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 pagine View / Fragment mantenute nella gerarchia delle visualizzazioni.

Modifiche alle API

  • Gli attributi orientation e isUserScrollable non fanno più parte di SavedState
  • Metodi saveState e restoreState resi definitivi in FragmentStateAdapter
  • Annotazioni ViewPager2.Orientation e ViewPager2.ScrollState rese non pubbliche

Correzioni di bug

  • SavedState: è stato risolto un problema relativo al ripristino quando Activity viene eliminato / ricreato
  • SavedState: ripristino ritardato finché non viene configurato l'adattatore
  • OnPageChangeCallback: 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 oggetto Lifecycle. Sono stati aggiunti due costruttori di utilità per ottenerla dall'host FragmentActivity o dall'host Fragment.

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 sostituisce FragmentStatePagerAdapter
  • RecyclerView.Adapter sostituisce PagerAdapter
  • registerOnPageChangeCallback sostituisce addPageChangeListener

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