Recyclerview

Visualizza grandi set di dati nell'interfaccia utente riducendo al minimo l'utilizzo della memoria.

Questa tabella elenca tutti gli elementi nel gruppo androidx.recyclerview.

Elemento Release stabile Release Candidate Versione beta Versione alpha
recyclerview 1.3.2 1.4.0-rc01 - -
recyclerview-selection 1.1.0 - - 1.2.0-alpha01
Questa libreria è stata aggiornata l'ultima volta il 18 settembre 2024

Dichiarazione delle dipendenze

Per aggiungere una dipendenza a RecyclerView, devi aggiungere il repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il repository Maven di Google.

Aggiungi le dipendenze per gli elementi necessari nel file build.gradle per la tua app o il tuo modulo:

Alla moda

dependencies {
    implementation "androidx.recyclerview:recyclerview:1.3.2"
    // For control over item selection of both touch and mouse driven selection
    implementation "androidx.recyclerview:recyclerview-selection:1.1.0"
}

Kotlin

dependencies {
    implementation("androidx.recyclerview:recyclerview:1.3.2")
    // For control over item selection of both touch and mouse driven selection
    implementation("androidx.recyclerview:recyclerview-selection:1.1.0")
}

Per ulteriori informazioni sulle dipendenze, consulta Aggiungere dipendenze di compilazione.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.

Creare un nuovo problema

Per ulteriori informazioni, consulta la documentazione del Monitoraggio problemi.

Versione 1.4

Versione 1.4.0-rc01

18 settembre 2024

androidx.recyclerview:recyclerview:1.4.0-rc01 è stato rilasciato senza modifiche dal 1.4.0-alpha02/. La versione 1.4.0-rc01 contiene questi commit.

Modifiche apportate dalla versione 1.3.2

Nota sulla compatibilità: questa versione verrà compilata solo con l'SDK API 35 (Vanilla Ice Cream) o versioni successive. Se durante l'upgrade vengono visualizzati avvisi AGP (Android Gradle Plugin), puoi ignorarli.

Nuove funzionalità

  • Supporto della frequenza di aggiornamento Adaptive: RecyclerView ora chiama setFrameContentVelocity quando scorre tramite OverScroller (ad esempio quando si stabilizza dopo un movimento brusco o uno scorrimento fluido). (I8f8a4)

Modifiche all'API

  • Aggiungi l'API RecyclerView$LayoutManager#isLayoutReversed. (I4970e)

Altre modifiche

  • È stato rimosso il riepilogo manuale dell'accesso alle nuove API di piattaforma, poiché avviene automaticamente tramite la definizione del modello API quando si utilizza R8 con AGP 7.3 o versioni successive (ad es. R8 versione 3.3) e per tutte le build quando si utilizza AGP 8.1 o versioni successive (ad es. D8 versione 8.1). I clienti che non utilizzano AGP sono invitati a eseguire l'aggiornamento alla versione 8.1 o successive di D8. Consulta questo articolo per ulteriori dettagli. (Ia60e0, b/345472586)
  • Aggiungi il tipo di visualizzazione elemento alle sezioni di traccia RecyclerView bind/create e etichetta i pre-caricamenti RV come "forzati - frame successivo necessario" se è previsto che vengano utilizzati dal frame successivo e quindi devono iniziare a funzionare il prima possibile. (I8ec3e, b/309523615)
  • Aggiorna compileSdk a 35 (per maggiori dettagli, consulta la "Nota sulla compatibilità" sopra). 5dc41be

Versione 1.4.0-beta01

21 agosto 2024

androidx.recyclerview:recyclerview:1.4.0-beta01 è stato rilasciato senza modifiche dalla versione 1.4.0-alpha02. La versione 1.4.0-beta01 contiene questi commit.

Nota sulla compatibilità: questa versione verrà compilata solo con l'SDK API 35 (Vanilla Ice Cream) o versioni successive. Se durante l'upgrade vengono visualizzati avvisi AGP (Android Gradle Plugin), puoi ignorarli.

Versione 1.4.0-alpha02

7 agosto 2024

androidx.recyclerview:recyclerview:1.4.0-alpha02 viene rilasciato. La versione 1.4.0-alpha02 contiene questi commit.

Nota sulla compatibilità: questa versione verrà compilata solo con l'SDK API 35 (Vanilla Ice Cream) o versioni successive. Se durante l'upgrade vengono visualizzati avvisi AGP (Android Gradle Plugin), puoi ignorarli.

Nuove funzionalità

  • Supporto della frequenza di aggiornamento variabile: ora RecyclerView chiama setFrameContentVelocity quando scorre tramite OverScroller (ad esempio quando si stabilizza dopo un movimento brusco o uno scorrimento fluido). (I8f8a4)

Modifiche all'API

  • API ViewCompat.LAYOUT_DIRECTION_ ritirate (I51710, b/317055535)
  • Aggiungi l'API RecyclerView$LayoutManager#isLayoutReversed. (I4970e)

Altre modifiche

  • È stato rimosso il riepilogo manuale dell'accesso alle nuove API di piattaforma, poiché avviene automaticamente tramite la definizione del modello API quando si utilizza R8 con AGP 7.3 o versioni successive (ad es. R8 versione 3.3) e per tutte le build quando si utilizza AGP 8.1 o versioni successive (ad es. D8 versione 8.1). I clienti che non utilizzano AGP sono invitati a eseguire l'aggiornamento alla versione 8.1 o successive di D8. Consulta questo articolo per ulteriori dettagli. (Ia60e0, b/345472586)
  • Aggiungi il tipo di visualizzazione elemento alle sezioni di traccia RecyclerView bind/create e etichetta i pre-caricamenti RV come "forzati - frame successivo necessario" se è previsto che vengano utilizzati dal frame successivo e quindi devono iniziare a funzionare il prima possibile. (I8ec3e, b/309523615)
  • Aggiorna compileSdk a 35 (per maggiori dettagli, consulta la "Nota sulla compatibilità" sopra). 5dc41be

Contributo esterno

  • GestureDetectorCompat è stato ritirato perché GestureDetector è disponibile dal minSdk. (Icc4cd)

Versione 1.4.0-alpha01

18 ottobre 2023

androidx.recyclerview:recyclerview:1.4.0-alpha01 viene rilasciato. La versione 1.4.0-alpha01 contiene questi commit.

Modifiche all'API

  • Aggiungi l'API RecyclerView$LayoutManager#isLayoutReversed. (I4970e)

Correzioni di bug

  • Correzione di un bug che causava arresti anomali sporadici durante le animazioni (I42f22b) (incluso anche nella versione 1.3.2)

Versione 1.3.2

Versione 1.3.2

18 ottobre 2023

androidx.recyclerview:recyclerview:1.3.2 viene rilasciato. La versione 1.3.2 contiene questi commit.

Correzioni di bug

  • È stato corretto un bug che causava arresti anomali sporadici durante le animazioni. (I42f22b)

Versione 1.3.1

Versione 1.3.1

26 luglio 2023

androidx.recyclerview:recyclerview:1.3.1 è stato rilasciato senza modifiche dalla versione 1.3.1-rc01. La versione 1.3.1 contiene questi commit.

Per le note di rilascio della release precedente, consulta la nostra pagina delle note di rilascio

Versione 1.3.1-rc01

24 maggio 2023

androidx.recyclerview:recyclerview:1.3.1-rc01 viene rilasciato. La versione 1.3.1-rc01 contiene questi commit.

Gli utenti di ViewPager2 devono eseguire l'aggiornamento ad almeno 1.1.0-beta02 quando eseguono l'aggiornamento a questa versione di RecyclerView per evitare arresti anomali.

Modifiche all'API

  • Sono stati aggiunti nuovi metodi setDebugAssertionsEnabled e setVerboseLoggingEnabled che possono essere utili per il debug dei problemi relativi a RecyclerView nelle app. (I514b9)

Correzioni di bug

  • Correggere gli arresti anomali per gli utenti di ViewTreeLifecycleOwner (incluso ComposeView) ricollegando temporaneamente le visualizzazioni scollegate quando viene chiamata onBind. (I7244f2c, b/265347515, b/283288295)

Versione 1.3.0

Versione 1.3.0

8 marzo 2023

Viene rilasciata la versione androidx.recyclerview:recyclerview:1.3.0, senza modifiche dalla versione 1.3.0-rc01. La versione 1.3.0 contiene questi commit.

Modifiche importanti dalla versione 1.2.0

  • Questa release contiene miglioramenti delle prestazioni (in precedenza inclusi in 1.3.0-alpha02 e 1.3.0-beta01) se utilizzata con Jetpack Compose. Se utilizzi Compose 1.2.0-beta02 o versioni successive e utilizzavi MyComposeAdapter e DisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy descritti nelle linee guida sull'interoperabilità precedenti, devi rimuoverli, in quanto non sono più un miglioramento rispetto allo stato predefinito.
  • È stato aggiunto un nuovo metodo ConcatAdapter.getWrappedAdapterAndPosition per consentire il recupero delle informazioni sull'adattatore incapsulato in situazioni in cui non è presente un ViewHolder, ad esempio un SpanSizeLookup (I2bd4c, b/191543920)

Versione 1.3.0-rc01

21 settembre 2022

androidx.recyclerview:recyclerview:1.3.0-rc01 viene rilasciato. La versione 1.3.0-rc01 contiene questi commit.

  • Nessuna modifica dall'ultima release

Versione 1.3.0-beta02

10 agosto 2022

androidx.recyclerview:recyclerview:1.3.0-beta02 viene rilasciato. La versione 1.3.0-beta02 contiene questi commit.

Modifiche all'API

  • Sono state rimosse le annotazioni di nullità aggiunte in 1.3.0-beta01 perché rappresentavano una modifica significativa non compatibile con il codice sorgente per gli utenti di Kotlin (I7a258,I1557e6,I8db76)

Versione 1.3.0-beta01

29 giugno 2022

androidx.recyclerview:recyclerview:1.3.0-beta01 viene rilasciato. La versione 1.3.0-beta01 contiene questi commit.

Nuove funzionalità

  • Questa release beta contiene miglioramenti delle prestazioni (in precedenza inclusi nella versione 1.3.0-alpha02 se utilizzata con Jetpack Compose. Se utilizzi Compose 1.2.0-beta02 o versioni successive e utilizzavi MyComposeAdapter e DisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy descritti nelle linee guida sull'interoperabilità precedenti, devi rimuoverli, in quanto non sono più un miglioramento rispetto allo stato predefinito.

Modifiche all'API

  • Sono state aggiunte annotazioni di nullità per una serie di metodi e parametri per migliorare gli avvisi di lint per gli utenti Java e l'interoperabilità per gli utenti Kotlin. Questa potrebbe essere una modifica che comporta una rottura del codice sorgente per alcuni utenti di Kotlin e potrebbe comportare avvisi/errori di lint aggiuntivi per alcuni utenti di Java. (I61829, b/236487044; Ia0b6f; I6f119, b/236487209; Ibe1de, b/236487210)

Correzioni di bug

  • Assicurati che le griglie vengano trattate come griglie dai servizi a11y impostando un nome di classe di informazioni del nodo a11y. (I12812)

Versione 1.3.0-alpha02

6 aprile 2022

androidx.recyclerview:recyclerview:1.3.0-alpha02 viene rilasciato. La versione 1.3.0-alpha02 contiene questi commit.

Modifiche all'API

  • Aggiunge metodi BuildCompat sperimentali per gli SDK futuri (Iafd82, b/207528937)
  • È stato aggiunto un nuovo metodo ConcatAdapter.getWrappedAdapterAndPosition per consentire il recupero delle informazioni sull'adattatore avvolto in situazioni in cui non è presente un ViewHolder, ad esempio un SpanSizeLookup (I2bd4c, b/191543920)

Correzioni di bug

  • Integrazione con la nuova libreria PoolingContainer di AndroidX (Ib89d2)
  • Regola la distanza di scorrimento per l'azione di accessibilità (If74ae)

Versione 1.3.0-alpha01

15 settembre 2021

androidx.recyclerview:recyclerview:1.3.0-alpha01 viene rilasciato. La versione 1.3.0-alpha01 contiene questi commit.

Nuove funzionalità

  • È stato aggiunto il supporto per RecyclerView con scorrimento elastico. (Iab877)

RecyclerView-Selection versione 1.2.0

Versione 1.2.0-alpha01

5 maggio 2021

androidx.recyclerview:recyclerview-selection:1.2.0-alpha01 viene rilasciato. La versione 1.2.0-alpha01 contiene questi commit.

Correzioni di bug

  • È stato risolto un problema per cui la mappatura chiave/posizione in KeyProvider andava persa mentre la voce non era ancora stata riciclata. (b/145767095)

Versione 1.2.1

Versione 1.2.1

2 giugno 2021

androidx.recyclerview:recyclerview:1.2.1 viene rilasciato. La versione 1.2.1 contiene questi commit.

Correzioni di bug

  • I ViewHolder all'interno di un ConcatAdapter ora restituiscono la posizione dell'adattatore corretta quando viene eseguita una query nel callback onViewRecycled. (b/187339376)

Versione 1.2.0

Versione 1.2.0

7 aprile 2021

androidx.recyclerview:recyclerview:1.2.0 viene rilasciato. La versione 1.2.0 contiene questi commit.

Modifiche principali dalla versione 1.1.0

ConcatAdapter: questo nuovo adattatore consente di concatenare facilmente più adattatori sullo stesso RecyclerView. Per ulteriori informazioni, consulta il post del blog.

Ripristino dello stato lazy: l'adattatore RecyclerView ora può ritardare il ripristino dello stato fino al caricamento dei relativi contenuti. Per ulteriori dettagli, consulta la documentazione.

Versione 1.2.0-rc01

24 marzo 2021

androidx.recyclerview:recyclerview:1.2.0-rc01 viene rilasciato. La versione 1.2.0-rc01 contiene questi commit.

Correzioni di bug

  • ConcatAdapter.Config.Builder ora ha valori predefiniti corrispondenti a Config.DEFAULT (b/157169835)

Versione 1.2.0-beta02

24 febbraio 2021

androidx.recyclerview:recyclerview:1.2.0-beta02 viene rilasciato. La versione 1.2.0-beta02 contiene questi commit.

Correzioni di bug

  • È stato risolto un problema per cui il padding superiore causava lo spostamento verso l'alto dell'effetto di scorrimento verso l'alto a destra nell'area con spaziatura, anziché verso il basso per rispettare il padding. (I6b61d, b/118399122)

Versione 1.2.0-beta01

2 dicembre 2020

androidx.recyclerview:recyclerview:1.2.0-beta01 viene rilasciato senza modifiche dal giorno 1.2.0-alpha06. La versione 1.2.0-beta01 contiene questi commit.

Versione 1.2.0-alpha06

1° ottobre 2020

androidx.recyclerview:recyclerview:1.2.0-alpha06 viene rilasciato. La versione 1.2.0-alpha06 contiene questi commit.

Nuove funzionalità

  • È stato aggiunto il supporto per l'aggiunta di più RecyclerListeners. (I70ad8, b/145767095)

Modifiche all'API

  • RecyclerView.setRecyclerListener(RecyclerListener) è stato deprecato. (I70ad8, b/145767095)

Versione 1.2.0-alpha05

22 luglio 2020

androidx.recyclerview:recyclerview:1.2.0-alpha05 viene rilasciato. La versione 1.2.0-alpha05 contiene questi commit.

Correzioni di bug

  • È stato risolto il problema per cui, se un RecyclerView contiene un solo elemento ed è attivo, l'attivazione del focus in avanti o indietro non sposta il focus. (6f36b3)
  • È stato corretto un problema relativo a ArrayIndexOutOfBoundsException in StaggeredGridLayoutManager (49b601, b/122303625, b/74877618, b/160193663, b/37086625)
  • È stato corretto un bug di misurazione che, in circostanze specifiche, impediva a RecyclerView di mostrare in modo inappropriato i relativi elementi secondari. (89040c, b/138734786)

Contributi esterni

  • Grazie a Kolin Krewinkel per il contributo a nome di Facebook.

Versione 1.2.0-alpha04

24 giugno 2020

androidx.recyclerview:recyclerview:1.2.0-alpha04 viene rilasciato. La versione 1.2.0-alpha04 contiene questi commit.

Modifiche all'API

  • MergeAdapter è stato rinominato in ConcatAdapter per evitare confusione con diversi comportamenti di unione dei dati (c0540c, b/158019211).

Correzioni di bug

  • Miglioramenti allo scorrimento automatico quando vengono rimossi tutti gli elementi visibili (fe8670, b/154124815)

Versione 1.2.0-alpha03

29 aprile 2020

androidx.recyclerview:recyclerview:1.2.0-alpha03 viene rilasciato. La versione 1.2.0-alpha03 contiene questi commit.

Nuove funzionalità

  • RecyclerView ora dispone di un metodo nestedScrollBy che consente lo scorrimento programmatico che collabora con lo scorrimento nidificato: (Ibaa58)

Versione 1.2.0-alpha02

1° aprile 2020

androidx.recyclerview:recyclerview:1.2.0-alpha02 viene rilasciato. La versione 1.2.0-alpha02 contiene questi commit.

Questa e le versioni successive di RecyclerView non sono compatibili con le versioni precedenti di ViewPager2. Se al momento utilizzi androidx.viewpager2:viewpager2:1.0.0 o una versione precedente, assicurati di eseguire l'aggiornamento alla versione androidx.viewpager2:viewpager2:1.1.0-alpha01.

Nuove funzionalità

  • MergeAdapter

    • MergeAdapter: un nuovo adattatore RecyclerView che può combinare più adattatori in modo lineare.
    MyAdapter adapter1 = ...;
    AnotherAdapter adapter2 = ...;
    MergeAdapter merged = new MergeAdapter(adapter1, adapter2);
    recyclerView.setAdapter(mergedAdapter);
    

    Per l'esempio precedente, MergeAdapter presenterà gli elementi di adapter1 seguiti da adapter2.

  • RecyclerView.Adapter Ripristino dello stato lazy:

    • È stata aggiunta una nuova API alla classe RecyclerView.Adapter che consente all'adattatore di controllare quando deve essere ripristinato lo stato del layout.

    • Ad esempio, puoi chiamare:

    myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);
    

    per fare in modo che RecyclerView attenda che l'adattatore non sia vuoto prima di ripristinare la posizione di scorrimento.

  • CollectionInfo e CollectionItemInfo non verranno più compilati per impostazione predefinita.

    • Se vuoi che Accessibility Services (ad esempio TalkBack) continui a indicare il conteggio e l'indice dell'elemento all'utente, dovrai compilare CollectionInfo e CollectionItemInfo autonomamente.

    • Questi oggetti non vengono più compilati nel framework perché il framework non è in grado di determinare il numero di elementi percepiti dall'utente (ad esempio separatori, intestazioni o elementi RecyclerView che rappresentano più elementi percepiti).

Correzioni di bug

  • RecyclerView ora evita l'ancoraggio alle visualizzazioni esterne all'area visibile quando le dimensioni dell'area visibile sono cambiate
  • È stato corretto un bug in DiffUtil per cui la differenza potrebbe essere calcolata in modo errato quando un elemento originale del primo elenco viene duplicato più volte nel secondo elenco. (b/123376278)

Versione 1.2.0-alpha01

18 dicembre 2019

androidx.recyclerview:recyclerview:1.2.0-alpha01 viene rilasciato. La versione 1.2.0-alpha01 contiene questi commit.

Correzioni di bug

  • Sono stati corretti piccoli problemi relativi a FastScroller relativi al disegno RTL e all'accuratezza del tocco (b/143789932, aosp/1130438)
  • È stato corretto un arresto anomalo in ItemTouchHelper quando viene rimosso da RecyclerView mentre sono in esecuzione le animazioni di ItemTouchHelper (b/140447176, aosp/1167575)

Versione 1.1.0

Versione 1.1.0

20 novembre 2019

androidx.recyclerview:recyclerview:1.1.0 viene rilasciato. La versione 1.1.0 contiene questi commit.

Modifiche importanti dalla versione 1.0.0

  • PagerSnapHelper e LinearSnapHelper ora tengono conto del padding di RecyclerView indipendentemente dal valore di clipToPadding (b/139452422, b/139012032, aosp/1103182, aosp/1106715, aosp/1130728)
  • RecyclerView.setLayoutTransition(LayoutTransition) è formalmente deprecato e genera un IllegalArgumentException quando viene chiamato con un valore non null. Utilizza invece RecyclerView.setItemAnimator(ItemAnimator). (aosp/839414)
  • aosp/723649: RecyclerView ora implementa NestedScrollingChild3, il che gli consente di essere informato quando tutti i suoi elementi principali con scorrimento nidificato hanno smesso di consumare distanze di scorrimento nidificate. Se al momento il codice sviluppatore sostituisce RecyclerView.onNestedScroll(View, int, int, int, int, int), probabilmente non verrà più chiamato e dovrebbe essere sostituito da RecyclerView.onNestedScroll(View, int, int, int, int, int, int[]).
  • RecyclerView ora ha un attributo di stile predefinito: recyclerViewStyle, che consente di impostare lo stile predefinito nel tema
  • L'API ViewCompat per le azioni di accessibilità non interrompe più ItemDelegate di RecyclerView.
  • LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) può essere sostituito per personalizzare lo spazio di layout aggiuntivo da aggiungere a entrambi i lati del RecyclerView associato. (aosp/931259)
  • È stata aggiunta una nuova sovraccarica di smoothScrollBy: RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration), che consente di specificare una durata in millisecondi per la durata dell'animazione. (aosp/952807)

Versione 1.1.0-rc01

23 ottobre 2019

androidx.recyclerview:recyclerview:1.1.0-rc01 viene rilasciato. La versione 1.1.0-rc01 contiene questi commit.

Correzioni di bug

  • È stato corretto un errore "L'applicazione non risponde" quando si sostituisce RecyclerViewAccessibilityDelegate.ItemDelegate (aosp/1138057, aosp/1133434)

Versione 1.1.0-beta05

9 ottobre 2019

androidx.recyclerview:recyclerview:1.1.0-beta05 viene rilasciato. La versione 1.1.0-beta05 contiene questi commit.

Modifiche all'API

  • In seguito ai problemi aosp/1106715 e aosp/1103182, ora LinearSnapHelper e PagerSnapHelper restituiranno la visualizzazione al centro dei limiti di RecyclerView, meno i padding, nonostante il valore di clipToPadding. (aosp/1130728)

Correzioni di bug

  • È stato risolto un problema per cui RecyclerView generava nodi di accessibilità duplicati per gli elementi secondari di RecyclerView. (aosp/1130618)
  • È stato risolto un problema per cui le gerarchie di accessibilità virtuale nei RecyclerView non funzionavano.
  • Risolto un problema per cui non venivano utilizzati ItemDelegate personalizzati.

Versione 1.1.0-beta04

5 settembre 2019

androidx.recyclerview:recyclerview:1.1.0-beta04 viene rilasciato. I commit inclusi in questa versione sono disponibili qui.

Correzioni di bug

  • PagerSnapHelper e LinearSnapHelper ora prendono in considerazione il padding di RecyclerView indipendentemente dal valore di clipToPadding (b/139452422, b/139012032, aosp/1103182, aosp/1106715)
  • È stato corretto un bug per cui RecyclerView non impediva l'intercettazione dei tocchi quando lo scorrimento precedente nidificato causava lo scorrimento di un NestedScrollingParent (b/138668210, aosp/1105373). Questo è vantaggioso per librerie come ViewPager2.
  • Ora RecyclerView passa sempre a SCROLL_STATE_DRAGGING prima che vengano inviati i pre-scorrimenti nidificati (aosp/1105373)
  • Il pre-scorrimento nidificato non viene più eseguito prima che il gesto superi la tolleranza al tocco (b/139530818, aosp/1105373)
  • Gli argomenti dx e dy inviati ai pre-scorrimenti nidificati vengono azzerati quando RecyclerView non può scorrere in quella direzione (aosp/1105373)

Versione 1.1.0-beta03

15 agosto 2019

androidx.recyclerview:recyclerview:1.1.0-beta03 viene rilasciato. I commit inclusi in questa versione sono disponibili qui.

Modifiche all'API

  • RecyclerView ora invia le distanze di scorrimento tramite View.onScrollChanged(int l, int t, int oldl, int oldt) in modo che i servizi di accessibilità vengano informati con precisione delle modifiche dello scorrimento. (aosp/1007823)

Correzioni di bug

  • È stato corretto un grave bug di overflow dello stack relativo a RecyclerView e accessibilità. (aosp/1099577)

Versione 1.1.0-beta02

7 agosto 2019

androidx.recyclerview:recyclerview:1.1.0-beta02 viene rilasciato. I commit inclusi in questa versione sono disponibili qui.

Nuove funzionalità

  • RecyclerView ora ha un attributo di stile predefinito: recyclerViewStyle, che consente di impostare lo stile predefinito nel tema

Correzioni di bug

  • È stato corretto un bug per cui RecyclerView non consentiva l'intercettazione dei tocchi durante lo scorrimento, causando lo scorrimento di NestedScrollingParent. (b/131115697, aosp/1055911)

Versione 1.1.0-beta01

2 luglio 2019

androidx.recyclerview:recyclerview:1.1.0-beta01 viene rilasciato. I commit inclusi in questa versione sono disponibili qui.

Nuove funzionalità

  • RecyclerView ora partecipa allo scorrimento nidificato quando viene avviato uno scorrimento tramite eventi di accessibilità. (aosp/973584)

Versione 1.1.0-alpha06

5 giugno 2019

androidx.recyclerview:recyclerview:1.1.0-alpha06 e androidx.recyclerview:recyclerview-selection:1.1.0-alpha06 vengono rilasciati. I commit inclusi in questa versione sono disponibili qui.

Nuove funzionalità

  • È stata aggiunta una nuova sovraccarica di smoothScrollBy: RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration), che consente di specificare una durata in millisecondi per la durata dell'animazione. (aosp/952807)

Modifiche all'API

  • GridLayoutManager e StaggeredGridLayoutManager non etichettano più automaticamente gli elementi con larghezza completa come intestazioni per motivi di accessibilità (aosp/969703)
  • Mantenere l'ordine di selezione (per data di creazione) in recyclerview-selection (aosp/937279)

Correzioni di bug

  • È stato corretto un bug per cui RecyclerView veniva lanciato con velocità errate in una situazione di scorrimento nidificato. (aosp/961642)
  • Sono stati aggiunti miglioramenti alla stabilità di recyclerview-selection (aosp/960213, aosp/926296)

Versione 1.1.0-alpha05

7 maggio 2019

androidx.recyclerview:recyclerview:1.1.0-alpha05 e androidx.recyclerview:recyclerview-selection:1.1.0-alpha05 vengono rilasciati. I commit inclusi in questa versione sono disponibili qui.

Nuove funzionalità

  • LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) può essere ignorato per personalizzare la quantità di spazio di layout aggiuntivo da aggiungere a entrambi i lati del RecyclerView associato. (aosp/931259)

Modifiche all'API

  • Aggiungi l'API per recuperare l'elemento drawable DividerItemDecoration (aosp/937282)
  • LinearLayout.getExtraLayoutSpace(RecyclerVew.State) verrà ritirato a favore di un nuovo meccanismo che consente di avere uno spazio di layout extra personalizzato su entrambi i lati. Il nuovo metodo è LinearLayout.calculateExtraLayoutSpace(RecyclerView.state, int[]) (aosp/931259)

Correzioni di bug

  • Selezione dei gesti semplificata (aosp/940781)
  • Mantieni l'ordine di selezione (in base alla data di creazione) (b/128455535)

Versione 1.1.0-alpha04

3 aprile 2019

androidx.recyclerview:recyclerview:1.1.0-alpha04 viene rilasciato. I commit inclusi in questa versione sono disponibili qui.

Correzioni di bug

  • In precedenza, OnItemTouchListener di RV non poteva intercettare ACTION_UP, impedendo a OnItemTouchListener di bloccare la risposta di altro codice ad ACTION_UP. Il problema è stato risolto: (aosp/916137)

Versione 1.1.0-alpha03

13 marzo 2019

androidx.recyclerview:recyclerview:1.1.0-alpha03 viene rilasciato. L'elenco completo dei commit inclusi in questa versione è disponibile qui.

Nuove funzionalità

  • GridLayoutManager: attivazione, stima delle dimensioni della barra di scorrimento GridLayoutManager a risoluzione più elevata (aosp/838836):
    • Utilizza le informazioni sull'intervallo per stimare le dimensioni della barra di scorrimento per un GridLayoutManager.
    • Per attivarlo, chiama GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) passando true.
    • Per ulteriori informazioni, consulta la documentazione su GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean).

Correzioni di bug

  • Accessibilità: esisteva un bug per cui, una volta riutilizzato e poi ricollegato un ViewHolder, l'ItemDelegate associato al RecyclerViewAccessibilityDelegate di RecyclerView non veniva associato all'itemView del ViewHolder, compromettendo l'accessibilità. Il problema è stato risolto (aosp/917740).

Versione 1.1.0-alpha02

30 gennaio 2019

androidx.recyclerview:recyclerview 1.1.0-alpha02 viene rilasciato.

Modifiche all'API

  • RecyclerView.setLayoutFrozen(boolean) e RecyclerView.isLayoutFrozen() sono deprecati in favore di RecyclerView.suppressLayout(boolean) e RecyclerView.isLayoutSuppressed(). (aosp/839414)
  • RecyclerView.setLayoutTransition(LayoutTransition) è formalmente deprecato e genera un IllegalArgumentException quando viene chiamato con un valore non null. (aosp/839414)

Correzioni di bug

  • Correzione di un bug in RV in cui SmoothScroller non viene mai interrotto (aosp/843741)
  • È stato corretto un bug per cui SCROLL_STATE_IDLE potrebbe non essere chiamato alla fine di un'animazione con scorrimento. (aosp/812576)

Versione 1.1.0-alpha01

3 dicembre 2018

androidx.recyclerview 1.1.0-alpha01 e androidx.recyclerview-selection 1.1.0-alpha01 vengono rilasciati.

androidx.recyclerview 1.1.0-alpha01

Modifiche all'API

  • aosp/723649: RecyclerView ora implementa NestedScrollingChild3, il che gli consente di essere informato quando tutti i suoi elementi principali con scorrimento nidificato hanno smesso di consumare distanze di scorrimento nidificate. Se al momento il codice sviluppatore sostituisce RecyclerView.onNestedScroll(View, int, int, int, int, int), probabilmente non verrà più chiamato e dovrebbe essere sostituito da RecyclerView.onNestedScroll(View, int, int, int, int, int, int[]).

Correzioni di bug

  • È stato corretto un arresto anomalo quando si utilizza TransitionManager per comprimere/espandere un elemento in RecyclerView (b/37129527).
  • È stato corretto un bug per cui il comportamento di RecyclerView.OnItemTouchListener non era coerente con quello di onInterceptTouchEvent e onTouchEvent del sistema di visualizzazione (aosp/721235)
  • Sono stati corretti alcuni bug relativi a casi limite relativi allo scorrimento fluido (aosp/729718, aosp/747168, aosp/812576)
  • È stata corretta la strategia di agganci in PagerSnapHelper per gestire le visualizzazioni secondarie non standard (aosp/795752)

androidx.recyclerview-selection 1.1.0-alpha01

Correzioni di bug

  • È stato corretto il problema ConcurrentModificationException quando il set di dati è stato modificato con la rimozione della selezione.

RecyclerView-Selection versione 1.1.0

RecyclerView-Selection versione 1.1.0

27 gennaio 2021

androidx.recyclerview:recyclerview-selection:1.1.0 viene rilasciato. La versione 1.1.0 contiene questi commit.

Modifiche principali dalla versione 1.0.0

  • Numerosi miglioramenti della stabilità.
  • Metodi withGestureTooltypes e withPointerTooltypes ritirati il giorno SelectionTracker.Builder. Questi metodi verranno rimossi in una release futura.

RecyclerView-Selection versione 1.1.0-rc03

1° ottobre 2020

androidx.recyclerview:recyclerview-selection:1.1.0-rc03 viene rilasciato. La versione 1.1.0-rc03 contiene questi commit.

Correzioni di bug

Grazie a Stefan Kiesler per aver testato le correzioni e i feedback.

  • È stato risolto il problema per cui gli ascoltatori di clic della visualizzazione secondaria venivano chiamati in modo imprevisto durante la selezione attiva.
  • Gestore del mouse (selezione banda) > Gestisci in modo elegante i scorrimenti imprevisti. (b/167821507)

RecyclerView-Selection versione 1.1.0-rc02

2 settembre 2020

androidx.recyclerview:recyclerview-selection:1.1.0-rc02 viene rilasciato. La versione 1.1.0-rc02 contiene questi commit.

In evidenza

  • Sono state risolte diverse regressioni rispetto alla versione 1.0 nella gestione dell'input.
  • La libreria è stata aggiornata per supportare onRequestDisallowInterceptTouchEvent, in modo che funzioni bene con ItemTouchHelper (basta scorrere verso l'esterno).

Correzioni di bug

  • È stato risolto un problema relativo alla libreria di selezione che interpretava erroneamente gli eventi GestureDetector, con conseguente perdita di tocchi durante la selezione attiva (b/165030422)
  • È stato risolto il problema per cui la selezione non veniva aggiornata in base agli elementi rimossi dall'adattatore. (b/138932671)
  • È stato risolto il problema per cui gli elementi RecyclerView attivavano gli eventi onClick mentre SelectionTracker aveva una selezione attiva (b/161162268)
  • Ora gestisce correttamente onRequestDisallowInterceptTouchEvent
  • È stato risolto il problema relativo al carattere ”Cannot call this method in a scroll callback” visualizzato durante lo scorrimento del mouse su Q
  • Documentazione aggiornata (in particolare in StableIdKeyProvider) per indicare chiaramente i requisiti dell'istanza RecyclerView

Recyclerview-Selection versione 1.1.0-rc01

5 febbraio 2020

androidx.recyclerview:recyclerview-selection:1.1.0-rc01 viene rilasciato. La versione 1.1.0-rc01 contiene questi commit.

Correzioni di bug

  • È stato risolto un problema per cui è difficile scorrere RecyclerView con una selezione di gesti se interagisce con un layout AppBar scorrevole (aosp/1193934)

RecyclerView-Selection versione 1.1.0-beta01

4 dicembre 2019

androidx.recyclerview:recyclerview-selection:1.1.0-beta01 viene rilasciato. La versione 1.1.0-beta01 contiene questi commit.

Miglioramenti generali alla stabilità relativi a controlli difensivi e gestione dello stato interno.

Correzioni di bug

  • Gestione migliorata dello stato della raccolta e interpretazione degli eventi CANCEL, con conseguente miglioramento della stabilità.

Modifiche all'API

  • È stato aggiunto il parametro di tipo di chiave di selezione a classi e metodi in cui mancava.
  • Metodi obsoleti:
    • SelectionTracker.Builder#withPointerTooltype
    • SelectionTracker.Builder#withGestureTooltype
    • Questi metodi esistevano con l'intento che gli sviluppatori potessero mappare i comportamenti del cursore o dei gesti a tipi di strumenti diversi da quelli predefiniti*. L'intenzione era buona, ma con l'ulteriore utilizzo è emerso chiaramente che le aspettative degli utenti in merito al comportamento di inserimento sono molto specifiche per tipo di strumento. Inoltre, gli stili "passivi" sono di tipo FINGER per quanto riguarda il sistema di input di Android.
    • I tipi di strumenti predefiniti sono FINGER per Gesto e MOUSE per Cursore.