RecyclerView

Visualizza grandi set di dati nella tua UI riducendo al minimo l'utilizzo della memoria.

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

Elemento Release stabile Candidato per la release Release beta Release alpha
recyclerview 1.4.0 - - -
recyclerview-selection 1.2.0 - - 1.3.0-alpha01
Ultimo aggiornamento di questa libreria: 17 dicembre 2025

Dichiara le dipendenze

Per aggiungere una dipendenza da RecyclerView, devi aggiungere il repository Maven di Google al tuo progetto. Per saperne di più, consulta il repository Maven di Google.

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

Alla moda

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

Kotlin

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

Per saperne di più sulle dipendenze, consulta Aggiungi dipendenze di build.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa libreria. Prima di segnalare un nuovo problema, 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.

Crea un nuovo problema

Per ulteriori informazioni, consulta la documentazione di Issue Tracker.

Versione 1.4

Versione 1.4.0

15 gennaio 2025

androidx.recyclerview:recyclerview:1.4.0 è stato rilasciato. La versione 1.4.0 contiene questi commit.

Modifiche importanti dalla versione 1.3.2 di RecyclerView

  • AdaptiveSupporto della frequenza di aggiornamento: ora chiama setFrameContentVelocity quando scorre tramite OverScroller (ad esempio, quando si ferma dopo uno scorrimento rapido o uno scorrimento fluido).RecyclerView (I8f8a4)

Versione 1.4.0-rc01

18 settembre 2024

androidx.recyclerview:recyclerview:1.4.0-rc01 è stata rilasciata senza modifiche rispetto alla versione 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 visualizzi avvisi AGP (Android Gradle Plugin) durante l'upgrade, puoi eliminarli.

Nuove funzionalità

  • AdaptiveSupporto della frequenza di aggiornamento: ora chiama setFrameContentVelocity quando scorre tramite OverScroller (ad esempio, quando si ferma dopo uno scorrimento rapido o uno scorrimento fluido).RecyclerView (I8f8a4)

Modifiche alle API

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

Altre modifiche

  • È stata rimossa la definizione manuale dell'accesso alle nuove API della piattaforma, poiché avviene automaticamente tramite la modellazione delle 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 client 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 dell'elemento per RecyclerView associare/creare sezioni di traccia ed etichetta i prefetch RV come "forzati - necessari per il frame successivo" 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 i dettagli, consulta la "Nota sulla compatibilità" riportata sopra). 5dc41be

Versione 1.4.0-beta01

21 agosto 2024

androidx.recyclerview:recyclerview:1.4.0-beta01 è stata rilasciata senza modifiche rispetto alla 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 visualizzi avvisi AGP (Android Gradle Plugin) durante l'upgrade, puoi eliminarli.

Versione 1.4.0-alpha02

7 agosto 2024

androidx.recyclerview:recyclerview:1.4.0-alpha02 è stato 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 visualizzi avvisi AGP (Android Gradle Plugin) durante l'upgrade, puoi eliminarli.

Nuove funzionalità

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

Modifiche alle API

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

Altre modifiche

  • È stata rimossa la definizione manuale dell'accesso alle nuove API della piattaforma, poiché avviene automaticamente tramite la modellazione delle 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 client 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 dell'elemento per RecyclerView associare/creare sezioni di traccia ed etichetta i prefetch RV come "forzati - necessari per il frame successivo" 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 i dettagli, consulta la "Nota sulla compatibilità" riportata sopra). 5dc41be

Contributo esterno

  • GestureDetectorCompat è ora deprecato in quanto GestureDetector è disponibile a partire dal giorno minSdk. (Icc4cd)

Versione 1.4.0-alpha01

18 ottobre 2023

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

Modifiche alle 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 è stato 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

È stata rilasciata la versione androidx.recyclerview:recyclerview:1.3.1, senza modifiche rispetto alla versione 1.3.1-rc01. La versione 1.3.1 contiene questi commit.

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

Versione 1.3.1-rc01

24 maggio 2023

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

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

Modifiche alle API

  • Aggiungi nuovi metodi setDebugAssertionsEnabled e setVerboseLoggingEnabled che possono aiutare a eseguire il debug dei problemi relativi a RecyclerView nelle app. (I514b9)

Correzioni di bug

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

Versione 1.3.0

Versione 1.3.0

8 marzo 2023

androidx.recyclerview:recyclerview:1.3.0 è stata rilasciata senza modifiche rispetto alla 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 (precedentemente inclusi nelle versioni 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 precedenti sull'interoperabilità, devi rimuoverli, in quanto non rappresentano più un miglioramento rispetto allo stato predefinito.
  • È stato aggiunto il nuovo metodo ConcatAdapter.getWrappedAdapterAndPosition per consentire il recupero delle informazioni sull'adattatore di wrapping 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 è stato 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 è stato rilasciato. La versione 1.3.0-beta02 contiene questi commit.

Modifiche alle API

  • Sono state rimosse le annotazioni di nullabilità aggiunte nella versione 1.3.0-beta01 perché rappresentavano una modifica significativa incompatibile con l'origine per gli utenti Kotlin (I7a258,I1557e6,I8db76)

Versione 1.3.0-beta01

29 giugno 2022

androidx.recyclerview:recyclerview:1.3.0-beta01 è stato 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 precedenti sull'interoperabilità, devi rimuoverli, in quanto non rappresentano più un miglioramento rispetto allo stato predefinito.

Modifiche alle API

  • Sono state aggiunte annotazioni di nullabilità per una serie di metodi e parametri per migliorare gli avvisi di lint per gli utenti Java e l'interoperabilità per gli utenti Kotlin. Ciò potrebbe comportare una modifica che causa interruzioni per alcuni utenti Kotlin e generare ulteriori avvisi/errori di lint per alcuni utenti Java. (I61829, b/236487044; Ia0b6f; I6f119, b/236487209; Ibe1de, b/236487210)

Correzioni di bug

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

Versione 1.3.0-alpha02

6 aprile 2022

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

Modifiche alle API

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

Correzioni di bug

  • Integrazione con la nuova libreria PoolingContainer 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 è stato rilasciato. La versione 1.3.0-alpha01 contiene questi commit.

Nuove funzionalità

  • È stato aggiunto il supporto per lo scorrimento eccessivo esteso di RecyclerView. (Iab877)

RecyclerView-Selection versione 1.3.0

Versione 1.3.0-alpha01

17 dicembre 2025

androidx.recyclerview:recyclerview-selection:1.3.0-alpha01 è stato rilasciato. La versione 1.3.0-alpha01 contiene questi commit.

Modifiche alle API

  • Consenti all'hotspot di selezione di cancellare la selezione esistente (I0eae7, b/389814214). In questo modo, gli sviluppatori hanno un maggiore controllo su quando toccare o fare clic su un RecyclerView per selezionare un elemento, se gli altri elementi già selezionati rimangono selezionati o vengono deselezionati.

RecyclerView-Selection versione 1.2.0

Versione 1.2.0

20 maggio 2025

androidx.recyclerview:recyclerview-selection:1.2.0 è stato rilasciato. La versione 1.2.0 contiene questi commit.

Modifiche importanti dalla versione 1.1.0

  • Correggi i piccoli movimenti del mouse che trasformano i clic in trascinamenti.
  • È stato risolto un problema a causa del quale la mappatura di chiavi/posizioni in KeyProvider veniva persa mentre la voce non era ancora stata riciclata.

Versione 1.2.0-rc01

7 maggio 2025

androidx.recyclerview:recyclerview-selection:1.2.0-rc01 è stato rilasciato. La versione 1.2.0-rc01 contiene questi commit.

Correzioni di bug

  • Correggi i piccoli movimenti del mouse che trasformano i clic in trascinamenti. (Ie9106)

Versione 1.2.0-beta01

9 aprile 2025

androidx.recyclerview:recyclerview-selection:1.2.0-beta01 è stato rilasciato. La versione 1.2.0-beta01 contiene questi commit.

Modifiche alle API

Correzioni di bug

  • Questa libreria ora utilizza le annotazioni di nullabilità JSpecify, che sono di tipo use. Gli sviluppatori Kotlin devono utilizzare il seguente argomento del compilatore per imporre l'utilizzo corretto: -Xjspecify-annotations=strict (questo è il valore predefinito a partire dalla versione 2.1.0 del compilatore Kotlin). (I03b80, b/326456246)

Versione 1.2.0-alpha01

5 maggio 2021

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

Correzioni di bug

  • È stato risolto un problema a causa del quale la mappatura di chiavi/posizioni in KeyProvider veniva 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 è stato rilasciato. La versione 1.2.1 contiene questi commit.

Correzioni di bug

  • ViewHolder all'interno di un ConcatAdapter ora restituiscono la posizione corretta dell'adattatore quando vengono interrogati nel callback onViewRecycled. (b/187339376)

Versione 1.2.0

Versione 1.2.0

7 aprile 2021

androidx.recyclerview:recyclerview:1.2.0 è stato 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 nella stessa RecyclerView. Per saperne di più, consulta il post del blog.

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

Versione 1.2.0-rc01

24 marzo 2021

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

Correzioni di bug

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

Versione 1.2.0-beta02

24 febbraio 2021

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

Correzioni di bug

  • Risolto il problema per cui la spaziatura interna superiore causava lo spostamento verso l'alto della luce di overscroll a destra nell'area con spaziatura interna, anziché verso il basso per rispettare la spaziatura interna. (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 è stato rilasciato. La versione 1.2.0-alpha06 contiene questi commit.

Nuove funzionalità

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

Modifiche alle API

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

Versione 1.2.0-alpha05

22 luglio 2020

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

Correzioni di bug

  • È stato risolto il problema per cui se un RecyclerView ha un solo elemento e questo è attivo, la messa a fuoco in avanti o indietro non si sposta. (6f36b3)
  • È stato corretto un ArrayIndexOutOfBoundsException in StaggeredGridLayoutManager (49b601, b/122303625, b/74877618, b/160193663, b/37086625)
  • È stato corretto un bug di misurazione in cui, in determinate circostanze, RecyclerView non mostrava in modo inappropriato i relativi elementi secondari. (89040c, b/138734786)

Contributi esterni

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

Versione 1.2.0-alpha04

24 giugno 2020

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

Modifiche alle API

  • MergeAdapter è stato rinominato 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 è stato rilasciato. La versione 1.2.0-alpha03 contiene questi commit.

Nuove funzionalità

  • RecyclerView ora ha un metodo nestedScrollBy che consente lo scorrimento programmatico che interagisce con lo scorrimento nidificato: (Ibaa58)

Versione 1.2.0-alpha02

1° aprile 2020

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

Questa versione e le successive di RecyclerView non sono compatibili con le versioni precedenti di ViewPager2. Se al momento utilizzi androidx.viewpager2:viewpager2:1.0.0 o versioni precedenti, assicurati di eseguire l'aggiornamento a 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 quelli di adapter2.

  • Ripristino dello stato pigro di RecyclerView.Adapter:

    • È 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 i servizi di accessibilità (ad esempio TalkBack) continuino a indicare all'utente il conteggio e l'indice degli elementi, devi compilare autonomamente CollectionInfo e CollectionItemInfo.

    • Questi oggetti non vengono più compilati nel framework perché non è possibile determinare il conteggio degli 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 al di fuori dell'area visibile quando le dimensioni dell'area visibile sono cambiate
  • È stato corretto un bug in DiffUtil che poteva calcolare in modo errato la differenza quando un elemento originale del primo elenco veniva duplicato più volte nel secondo elenco. (b/123376278)

Versione 1.2.0-alpha01

18 dicembre 2019

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

Correzioni di bug

  • Sono stati corretti problemi minori relativi a FastScroller in relazione al disegno RTL e alla precisione del tocco (b/143789932, aosp/1130438)
  • È stato corretto l'arresto anomalo in ItemTouchHelper quando viene rimosso da RecyclerView durante l'esecuzione delle animazioni ItemTouchHelper (b/140447176, aosp/1167575)

Versione 1.1.0

Versione 1.1.0

20 novembre 2019

androidx.recyclerview:recyclerview:1.1.0 è stato 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 ritirato e genererà un IllegalArgumentException quando viene chiamato con un valore non nullo. Utilizza invece RecyclerView.setItemAnimator(ItemAnimator). (aosp/839414)
  • aosp/723649: RecyclerView ora implementa NestedScrollingChild3, consentendo di sapere quando tutti i relativi genitori con scorrimento nidificato hanno smesso di consumare le distanze di scorrimento nidificato. Se il codice sviluppatore attualmente esegue l'override di RecyclerView.onNestedScroll(View, int, int, int, int, int), è probabile che non venga più chiamato e che venga eseguito l'override di 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 accessibility actions non interrompe più RecyclerView ItemDelegate.
  • LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) può essere sostituito per personalizzare la quantità di spazio di layout aggiuntivo da aggiungere su entrambi i lati della RecyclerView associata. (aosp/931259)
  • È stato aggiunto un nuovo overload 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 è stato rilasciato. La versione 1.1.0-rc01 contiene questi commit.

Correzioni di bug

  • È stato corretto un errore "L'applicazione non risponde" durante l'override di RecyclerViewAccessibilityDelegate.ItemDelegate (aosp/1138057, aosp/1133434)

Versione 1.1.0-beta05

9 ottobre 2019

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

Modifiche all'API

  • In seguito a aosp/1106715 e aosp/1103182, ora LinearSnapHelper e PagerSnapHelper restituiranno la visualizzazione al centro dei limiti di RecyclerView, meno il padding, indipendentemente dal 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 in RecyclerViews 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 è stato rilasciato. I commit inclusi in questa versione sono disponibili qui.

Correzioni di bug

  • PagerSnapHelper e LinearSnapHelper ora tengono conto del padding di RecyclerView indipendentemente dal valore di clipToPadding (b/139452422, b/139012032, aosp/1103182, aosp/1106715)
  • È stato corretto un bug a causa del quale RecyclerView non impediva l'intercettazione del tocco quando lo scorrimento preliminare nidificato causava lo scorrimento di NestedScrollingParent (b/138668210, aosp/1105373). Ciò avvantaggia librerie come ViewPager2.
  • RecyclerView ora va sempre a SCROLL_STATE_DRAGGING prima che vengano inviati i pre-scorrimenti nidificati (aosp/1105373)
  • Lo scorrimento preliminare 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-scroll 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 è stato 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 allo scorrimento. (aosp/1007823)

Correzioni di bug

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

Versione 1.1.0-beta02

7 agosto 2019

androidx.recyclerview:recyclerview:1.1.0-beta02 è stato 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 impediva l'intercettazione del tocco quando lo scorrimento causava lo scorrimento di NestedScrollingParent. (b/131115697, aosp/1055911)

Versione 1.1.0-beta01

2 luglio 2019

androidx.recyclerview:recyclerview:1.1.0-beta01 è stato 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 sono stati rilasciati. I commit inclusi in questa versione sono disponibili qui.

Nuove funzionalità

  • È stato aggiunto un nuovo overload 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 a tutta larghezza come intestazioni per scopi di accessibilità (aosp/969703)
  • Mantenere l'ordine di selezione (in base alla 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 sono stati rilasciati. I commit inclusi in questa versione sono disponibili qui.

Nuove funzionalità

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

Modifiche all'API

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

Correzioni di bug

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

Versione 1.1.0-alpha04

3 aprile 2019

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

Correzioni di bug

  • In precedenza, RV OnItemTouchListener 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 è stato 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 abilitare, chiama GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) passando true.
    • Per ulteriori informazioni, consulta la documentazione su GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean).

Correzioni di bug

  • Accessibilità: si è verificato un bug per cui, una volta riciclato e poi riassociato un ViewHolder, l'ItemDelegate associato a RecyclerViewAccessibilityDelegate di RecyclerView non veniva associato a itemView di ViewHolder, interrompendo l'accessibilità. Il problema ora è stato risolto (aosp/917740).

Versione 1.1.0-alpha02

30 gennaio 2019

androidx.recyclerview:recyclerview 1.1.0-alpha02 è stato rilasciato.

Modifiche all'API

  • RecyclerView.setLayoutFrozen(boolean) e RecyclerView.isLayoutFrozen() sono deprecati a favore di RecyclerView.suppressLayout(boolean) e RecyclerView.isLayoutSuppressed(). (aosp/839414)
  • RecyclerView.setLayoutTransition(LayoutTransition) è formalmente ritirato e genererà un IllegalArgumentException quando viene chiamato con un valore non nullo. (aosp/839414)

Correzioni di bug

  • Correzione del bug in RV per 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 di 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 sono stati rilasciati.

androidx.recyclerview 1.1.0-alpha01

Modifiche all'API

  • aosp/723649: RecyclerView ora implementa NestedScrollingChild3, consentendo di sapere quando tutti i relativi genitori con scorrimento nidificato hanno smesso di consumare le distanze di scorrimento nidificato. Se il codice sviluppatore attualmente esegue l'override di RecyclerView.onNestedScroll(View, int, int, int, int, int), è probabile che non venga più chiamato e che venga eseguito l'override di RecyclerView.onNestedScroll(View, int, int, int, int, int, int[]).

Correzioni di bug

  • È stato corretto l'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 il comportamento di onInterceptTouchEvent e onTouchEvent del sistema di visualizzazione (aosp/721235)
  • Sono stati corretti alcuni bug relativi a casi limite correlati allo scorrimento fluido (aosp/729718, aosp/747168, aosp/812576)
  • Strategia di snap corretta in PagerSnapHelper per gestire le visualizzazioni secondarie non tipiche (aosp/795752)

androidx.recyclerview-selection 1.1.0-alpha01

Correzioni di bug

  • È stato corretto 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 è stato rilasciato. La versione 1.1.0 contiene questi commit.

Modifiche principali dalla versione 1.0.0

  • Numerosi miglioramenti della stabilità.
  • Metodi withGestureTooltypes e withPointerTooltypes deprecati 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 è stato rilasciato. La versione 1.1.0-rc03 contiene questi commit.

Correzioni di bug

Grazie a Stefan Kiesler per i test delle correzioni e il feedback.

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

RecyclerView-Selection versione 1.1.0-rc02

2 settembre 2020

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

In evidenza

  • Sono stati risolti diversi problemi di regressione della versione 1.0 nella gestione dell'input.
  • Libreria aggiornata per rispettare onRequestDisallowInterceptTouchEvent, consentendo di interagire bene con ItemTouchHelper (basta scorrere).

Correzioni di bug

  • È stato risolto il problema per cui la libreria di selezione interpretava erroneamente gli eventi GestureDetector, causando la perdita di tocchi durante la selezione attiva (b/165030422).
  • È stato risolto il problema a causa del quale la selezione non veniva aggiornata per riflettere gli elementi rimossi dall'adattatore. (b/138932671)
  • È stato risolto il problema per cui gli elementi RecyclerView attivavano eventi onClick mentre SelectionTracker aveva una selezione attiva (b/161162268)
  • Ora gestisce correttamente onRequestDisallowInterceptTouchEvent
  • È stato risolto il problema per cui ”Cannot call this method in a scroll callback” veniva visualizzato durante lo scorrimento con il mouse su Q
  • Documenti aggiornati (soprattutto 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 è stato 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 tramite gesto se interagisce con un AppBarLayout scorrevole (aosp/1193934).

RecyclerView-Selection versione 1.1.0-beta01

4 dicembre 2019

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

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

Correzioni di bug

  • Migliore gestione dello stato della libreria e interpretazione degli eventi CANCEL, con conseguente miglioramento della stabilità.

Modifiche all'API

  • È stato aggiunto il parametro del tipo di chiave di selezione a classi e metodi in cui mancava.
  • Metodi ritirati:
    • SelectionTracker.Builder#withPointerTooltype
    • SelectionTracker.Builder#withGestureTooltype
    • Questi metodi sono stati creati con l'intento che gli sviluppatori possano mappare i comportamenti del puntatore o dei gesti su tipi di strumenti diversi da quelli predefiniti*. L'intento era buono, ma con un utilizzo più approfondito è diventato chiaro che le aspettative degli utenti in merito al comportamento di input sono molto specifiche per il tipo di strumento. Inoltre, gli stili "passivi" sono di tipo FINGER per quanto riguarda il sistema di input Android.
    • I tipi di strumento predefiniti sono FINGER per Gesto e MOUSE per Puntatore.