Recyclerview

Affichez de grands ensembles de données dans votre interface utilisateur tout en réduisant l'utilisation de la mémoire.

Ce tableau répertorie tous les artefacts du groupe androidx.recyclerview.

Artefact Version stable Version finale Version bêta Version alpha
recyclerview 1.3.2 - - 1.4.0-alpha01
recyclerview-selection 1.1.0 - - 1.2.0-alpha01
Dernière mise à jour de la bibliothèque: 18 octobre 2023

Déclarer des dépendances

Pour ajouter une dépendance à une RecyclerView, vous devez ajouter le dépôt Google Maven à votre projet. Consultez la section Dépôt Maven de Google pour en savoir plus.

Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle de votre application ou de votre module :

Groovy

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")
}

Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.

Commentaires

Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.

Signaler un nouveau problème

Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.

Version 1.4

Version 1.4.0-alpha01

18 octobre 2023

Publication d'androidx.recyclerview:recyclerview:1.4.0-alpha01. Liste des commits de la version 1.4.0-alpha01

Modifications apportées à l'API

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

Correction de bugs

  • Correction d'un bug qui entraînait des plantages sporadiques lors des animations. (I42f22b) (également inclus dans la version 1.3.2)

Version 1.3.2

Version 1.3.2

18 octobre 2023

Publication d'androidx.recyclerview:recyclerview:1.3.2. Liste des commits de la version 1.3.2

Correction de bugs

  • Correction d'un bug qui entraînait des plantages sporadiques lors des animations. (I42f22b).

Version 1.3.1

Version 1.3.1

26 juillet 2023

Publication d'androidx.recyclerview:recyclerview:1.3.1 sans aucune modification par rapport à la version 1.3.1-rc01. Liste des commits de la version 1.3.1

Pour obtenir les notes de version d'une version précédente, reportez-vous à la page Notes de version.

Version 1.3.1-rc01

24 mai 2023

Publication d'androidx.recyclerview:recyclerview:1.3.1-rc01. Liste des commits de la version 1.3.1-rc01

Les utilisateurs de ViewPager2 doivent passer à la version 1.1.0-beta02 ou ultérieure lorsqu'ils passent à cette version de RecyclerView pour éviter les plantages.

Modifications apportées à l'API

  • Ajout des méthodes setDebugAssertionsEnabled et setVerboseLoggingEnabled pour faciliter le débogage des problèmes liés à RecyclerView dans les applications. (I514b9).

Correction de bugs

  • Correction des plantages pour les utilisateurs de ViewTreeLifecycleOwner (y compris ComposeView) en réassociant temporairement des vues dissociées lors de l'appel de onBind. (I7244f2c, b/265347515, b/283288295).

Version 1.3.0

Version 1.3.0

8 mars 2023

Publication d'androidx.recyclerview:recyclerview:1.3.0 sans aucune modification par rapport à la version 1.3.0-rc01. Liste des commits de la version 1.3.0.

Changements importants depuis la version 1.2.0

  • Cette version inclut des améliorations des performances (précédemment incluses dans 1.3.0-alpha02 et 1.3.0-beta01) lorsqu'elles sont utilisées avec Jetpack Compose. Si vous utilisez Compose 1.2.0-beta02 ou une version ultérieure et les ViewCompositionStrategy MyComposeAdapter et DisposeOnViewTreeLifecycleDestroyed décrits dans les consignes d'interopérabilité précédentes, vous devez les supprimer, car il ne s'agit plus d'une amélioration par rapport à l'état par défaut.
  • Ajout d'une méthode ConcatAdapter.getWrappedAdapterAndPosition pour permettre la récupération d'informations sur l'adaptateur encapsulé dans les cas où vous n'avez pas de ViewHolder, comme un SpanSizeLookup. (I2bd4c, b/191543920)

Version 1.3.0-rc01

21 septembre 2022

Publication d'androidx.recyclerview:recyclerview:1.3.0-rc01. Liste des commits de la version 1.3.0-rc01

  • Aucune modification depuis la dernière version

Version 1.3.0-beta02

10 août 2022

Publication d'androidx.recyclerview:recyclerview:1.3.0-beta02. Liste des commits de la version 1.3.0-beta02

Modifications apportées à l'API

  • Suppression des annotations de possibilité de valeur nulle ajoutées dans la version 1.3.0-beta01, car elles représentaient une modification importante incompatible avec les sources pour les utilisateurs du langage Kotlin (I7A258, I1557e6, I8db76).

Version 1.3.0-beta01

29 juin 2022

Publication d'androidx.recyclerview:recyclerview:1.3.0-beta01. Liste des commits de la version 1.3.0-beta01

Nouvelles fonctionnalités

  • Cette version bêta offre des améliorations de performances (auparavant incluses dans la version 1.3.0-alpha02 lorsqu'elle était utilisée avec Jetpack Compose). Si vous utilisez Compose 1.2.0-beta02 ou version ultérieure et les ViewCompositionStrategy MyComposeAdapter et DisposeOnViewTreeLifecycleDestroyed décrites dans les consignes d'interopérabilité précédentes, vous devez supprimer ces dernières, puisqu'il ne s'agit plus d'une amélioration par rapport à l'état par défaut.

Modifications apportées à l'API

  • Ajout d'annotations de possibilité de valeur nulle pour un certain nombre de méthodes et de paramètres afin d'améliorer les avertissements lint pour les utilisateurs de Java et l'interopérabilité pour les utilisateurs de Kotlin. Cela peut représenter une modification destructive de source pour certains utilisateurs de Kotlin et donner lieu à des avertissements ou erreurs lint supplémentaires pour certains utilisateurs de Java. (I61829, b/236487044 ; Ia0b6f ; I6f119, b/236487209 ; Ibe1de, b/236487210)

Correction de bugs

  • Permet de paramétrer un nom de classe d'informations de nœuds a11y afin que les grilles soit traitées en tant que telles par les services a11y. (I12812)

Version 1.3.0-alpha02

6 avril 2022

Publication d'androidx.recyclerview:recyclerview:1.3.0-alpha02. Liste des commits de la version 1.3.0-alpha02

Modifications apportées à l'API

  • Ajout de méthodes BuildCompat expérimentales pour les futurs SDK (Iafd82, b/207528937)
  • Nouvelle méthode ConcatAdapter.getWrappedAdapterAndPosition ajoutée pour permettre la récupération d'informations sur l'adaptateur encapsulé dans les cas où vous n'avez pas de ViewHolder, par exemple, pour SpanSizeLookup (I2bd4c, b/191543920).

Correction de bugs

  • Intégration à la nouvelle bibliothèque PoolingContainer d'AndroidX (Ib89d2)
  • Ajuste la distance de défilement pour l'action d'accessibilité (If74ae)

Version 1.3.0-alpha01

15 septembre 2021

Publication d'androidx.recyclerview:recyclerview:1.3.0-alpha01. Liste des commits de la version 1.3.0-alpha01

Nouvelles fonctionnalités

  • Ajout de la compatibilité avec le défilement hors limite de RecyclerView. (Iab877)

RecyclerView-Selection version 1.2.0

Version 1.2.0-alpha01

5 mai 2021

Publication d'androidx.recyclerview:recyclerview-selection:1.2.0-alpha01. Liste des commits de la version 1.2.0-alpha01.

Correction de bugs

  • Résolution du problème de perte du mappage clé/position dans le KeyProvider lorsqu'une entrée n'était pas encore recyclée. (b/145767095)

Version 1.2.1

Version 1.2.1

2 juin 2021

Publication d'androidx.recyclerview:recyclerview:1.2.1. Liste des commits de la version 1.2.1

Correction de bugs

  • Les ViewHolder dans un ConcatAdapter renvoient désormais la bonne position d'adaptateur lorsqu'ils sont interrogés dans le rappel onViewRecycled. (b/187339376)

Version 1.2.0

Version 1.2.0

7 avril 2021

Publication d'androidx.recyclerview:recyclerview:1.2.0. Liste des commits de la version 1.2.0

Principales modifications depuis la version 1.1.0

ConcatAdapter : ce nouvel adaptateur vous permet de concaténer facilement plusieurs Adapters sur la même RecyclerView. Pour en savoir plus, consultez cet article de blog.

Restauration différée de l'état : l'Adapter de RecyclerView peut désormais retarder la restauration de l'état jusqu'à ce que son contenu soit chargé. Consultez la documentation pour en savoir plus.

Version 1.2.0-rc01

24 mars 2021

Publication d'androidx.recyclerview:recyclerview:1.2.0-rc01. Liste des commits de la version 1.2.0-rc01

Correction de bugs

  • Les valeurs par défaut de ConcatAdapter.Config.Builder correspondent maintenant à Config.DEFAULT (b/157169835)

Version 1.2.0-beta02

24 février 2021

Publication d'androidx.recyclerview:recyclerview:1.2.0-beta02. Liste des commits de la version 1.2.0-beta02

Correction de bugs

  • Résolution d'un problème de marge intérieure supérieure. Il provoquait un glissement du défilement vers la droite dans la zone délimitée vers le haut, plutôt que vers le bas, afin de respecter la marge intérieure. (I6b61d, b/118399122)

Version 1.2.0-beta01

2 décembre 2020

Publication d'androidx.recyclerview:recyclerview:1.2.0-beta01 sans aucune modification par rapport à la version 1.2.0-alpha06. Liste des commits de la version 1.2.0-beta01

Version 1.2.0-alpha06

1er octobre 2020

Publication d'androidx.recyclerview:recyclerview:1.2.0-alpha06. Liste des commits de la version 1.2.0-alpha06

Nouvelles fonctionnalités

  • Ajout de la possibilité d'ajouter plusieurs RecyclerListeners. (I70ad8, b/145767095)

Modifications apportées à l'API

  • Abandon de RecyclerView.setRecyclerListener(RecyclerListener). (I70ad8, b/145767095)

Version 1.2.0-alpha05

22 juillet 2020

Publication d'androidx.recyclerview:recyclerview:1.2.0-alpha05. Liste des commits de la version 1.2.0-alpha05

Correction de bugs

  • Résolution d'un problème empêchant de zommer ou de dézoomer sur les RecyclerViews qui ne contenaient qu'un élément sélectionné. (6f36b3)
  • Correction d'une ArrayIndexOutOfBoundsException dans StaggeredGridLayoutManager (49b601, b/122303625, b/74877618, b/160193663, b/37086625)
  • Correction d'un bug de mesure qui, dans des circonstances spécifiques, empêchait d'afficher les enfants d'une RecyclerView de manière appropriée. (89040c, b/138734786)

Contributions externes

  • Merci à Kolin Krewinkel (Facebook) pour sa contribution !

Version 1.2.0-alpha04

24 juin 2020

Publication d'androidx.recyclerview:recyclerview:1.2.0-alpha04. Liste des commits de la version 1.2.0-alpha04

Modifications apportées à l'API

  • MergeAdapter a été renommé ConcatAdapter pour éviter toute confusion avec d'autres comportements de fusion de données (c0540c, b/158019211).

Correction de bugs

  • Améliorations apportées au défilement automatique lors de la suppression de tous les éléments visibles (fe8670, b/154124815)

Version 1.2.0-alpha03

29 avril 2020

Publication d'androidx.recyclerview:recyclerview:1.2.0-alpha03. Liste des commits de la version 1.2.0-alpha03

Nouvelles fonctionnalités

  • RecyclerView dispose maintenant d'une méthode nestedScrollBy qui permet un défilement programmatique qui fonctionne avec le défilement imbriqué : (Ibaa58)

Version 1.2.0-alpha02

1er avril 2020

Publication d'androidx.recyclerview:recyclerview:1.2.0-alpha02. Liste des commits de la version 1.2.0-alpha02

Cette version et les versions ultérieures de RecyclerView ne sont pas compatibles avec les versions antérieures de ViewPager2. Si vous utilisez actuellement androidx.viewpager2:viewpager2:1.0.0 ou une version antérieure, veillez à passer à androidx.viewpager2:viewpager2:1.1.0-alpha01.

Nouvelles fonctionnalités

  • MergeAdapter

    • MergeAdapter : nouvel Adapter de RecyclerView qui peut combiner plusieurs adaptateurs linéairement.
    MyAdapter adapter1 = ...;
    AnotherAdapter adapter2 = ...;
    MergeAdapter merged = new MergeAdapter(adapter1, adapter2);
    recyclerView.setAdapter(mergedAdapter);
    

    Pour l'exemple ci-dessus, MergeAdapter présentera des éléments de adapter1 suivis d'éléments de adapter2.

  • Restauration par état différé de RecyclerView.Adapter :

    • Ajout d'une API à la classe RecyclerView.Adapter, qui permet à l'Adapter de déterminer quand restaurer l'état de la mise en page.

    • Par exemple, vous pouvez appeler :

    myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);
    

    pour permettre à RecyclerView d'attendre qu'Adapter ne soit plus vide avant de restaurer la position de défilement.

  • CollectionInfo et CollectionItemInfo ne seront plus insérés par défaut.

    • Si vous souhaitez que les services d'accessibilité (Talkback, par exemple) continuent d'indiquer à l'utilisateur le nombre et l'index des éléments, vous devez vous-même insérer CollectionInfo et CollectionItemInfo.

    • Ces objets ne sont plus insérés dans le framework, car celui-ci ne peut pas déterminer le nombre d'éléments perçus par l'utilisateur (tels que les séparateurs, les en-têtes ou les éléments de RecyclerView qui représentent plusieurs éléments perçus).

Correction de bugs

  • RecyclerView empêche désormais les ancrages sur des Views en dehors des fenêtres d'affichage lorsque leur taille a été modifiée.
  • Correction d'un bug dans DiffUtil qui provoquait parfois des calculs de différence incorrects lorsqu'un élément d'origine de la première liste était dupliqué plusieurs fois dans la seconde liste. (b/123376278)

Version 1.2.0-alpha01

18 décembre 2019

Publication d'androidx.recyclerview:recyclerview:1.2.0-alpha01. Liste des commits de la version 1.2.0-alpha01.

Corrections de bugs

  • Correction de problèmes mineurs de FastScroller liés à la fonctionnalité de dessin de droite à gauche et à la précision tactile (b/143789932, aosp/1130438)
  • Résolution du plantage de ItemTouchHelper lorsqu'il était supprimé de RecyclerView pendant l'exécution des animations ItemTouchHelper (b/140447176, aosp/1167575)

Version 1.1.0

Version 1.1.0

20 novembre 2019

Publication d'androidx.recyclerview:recyclerview:1.1.0. Liste des commits de la version 1.1.0.

Modifications importantes depuis la version 1.0.0

  • PagerSnapHelper et LinearSnapHelper tiennent désormais compte de la marge intérieure de RecyclerView, quelle que soit la valeur de clipToPadding (b/139452422, b/139012032, aosp/1103182, aosp/1106715, aosp/1130728.
  • RecyclerView.setLayoutTransition(LayoutTransition) est officiellement obsolète et génère une erreur IllegalArgumentException lorsqu'elle est appelée avec une valeur non nulle. Utilisez RecyclerView.setItemAnimator(ItemAnimator) à la place. (aosp/839414)
  • aosp/723649 : RecyclerView implémente désormais NestedScrollingChild3, ce qui lui permet d'être avertie lorsque tous ses parents à défilement imbriqué ont cessé de consommer des distances de défilement imbriquées. Si le code de développeur remplace actuellement RecyclerView.onNestedScroll(View, int, int, int, int, int), il ne sera probablement plus appelé. RecyclerView.onNestedScroll(View, int, int, int, int, int, int[]) devra être ignoré à la place.
  • RecyclerView dispose maintenant d'un attribut de style par défaut : recyclerViewStyle, qui permet de définir le style par défaut dans votre thème
  • L'API d'actions d'accessibilité ViewCompat n'interrompt plus ItemDelegate dans RecyclerView.
  • LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) peut être ignoré pour personnaliser l'espace supplémentaire à ajouter de chaque côté de la RecyclerView associée. (aosp/931259)
  • Ajout d'une surcharge associée à smoothScrollBy : RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration), qui vous permet de spécifier une durée en millisecondes pour la durée de l'animation. (aosp/952807)

Version 1.1.0-rc01

23 octobre 2019

Publication d'androidx.recyclerview:recyclerview:1.1.0-rc01. Liste des commits de la version 1.1.0-rc01

Corrections de bugs

  • Correction de l'erreur "L'application ne répond pas" survenant lors du remplacement de RecyclerViewAccessibilityDelegate.ItemDelegate (aosp/1138057, aosp/1133434)

Version 1.1.0-beta05

9 octobre 2019

Publication d'androidx.recyclerview:recyclerview:1.1.0-beta05. Liste des commits de la version 1.1.0-beta05

Modifications apportées à l'API

  • Suite à aosp/1106715 et à aosp/1103182, LinearSnapHelper et PagerSnapHelper renverront désormais la vue située au centre des limites des RecyclerViews, moins la marge intérieure, malgré la valeur de clipToPadding. (aosp/1130728)

Corrections de bugs

  • Correction d'un problème qui entraînait la génération de nœuds d'accessibilité en double pour les enfants des RecyclerViews. (aosp/1130618)
  • Les hiérarchies d'accessibilité virtuelles dans les RecyclerViews ne fonctionnaient pas. Ce problème a été résolu.
  • Correction d'un problème qui empêchait l'utilisation des ItemDelegates personnalisés.

Version 1.1.0-beta04

5 septembre 2019

Publication d'androidx.recyclerview:recyclerview:1.1.0-beta04. Les commits inclus dans cette version sont disponibles sur cette page.

Corrections de bugs

  • PagerSnapHelper et LinearSnapHelper tiennent désormais compte de la marge intérieure des RecyclerViews, quelle que soit la valeur de clipToPadding (b/139452422, b/139012032, aosp/1103182, aosp/1106715)
  • Correction d'un bug qui empêchait les RecyclerViews de désactiver l'interception tactile lorsque le prédéfilement imbriqué provoquait le défilement d'une NestedScrollingParent (b/138668210, aosp/1105373). Cette amélioration concerne les bibliothèques telles que ViewPager2.
  • Désormais, RecyclerView accède à SCROLL_STATE_DRAGGING de manière cohérente avant l'envoi des prédéfilements imbriqués (aosp/1105373).
  • Le prédéfilement imbriqué n'est plus effectué avant que le geste ne dépasse la pente tactile (b/139530818, aosp/1105373).
  • Les arguments dx et dy envoyés aux prédéfilements imbriqués sont réinitialisés lorsque RecyclerView ne peut pas faire défiler l'écran dans cette direction (aosp/1105373).

Version 1.1.0-beta03

15 août 2019

Publication d'androidx.recyclerview:recyclerview:1.1.0-beta03. Les commits inclus dans cette version sont disponibles sur cette page.

Modifications apportées à l'API

  • Désormais, RecyclerView transmet les distances de défilement via View.onScrollChanged(int l, int t, int oldl, int oldt) afin que les services d'accessibilité soient informés avec précision des changements de défilement. (aosp/1007823)

Corrections de bugs

  • Correction d'un bug majeur de dépassement de pile lié à RecyclerView et à l'accessibilité. (aosp/1099577)

Version 1.1.0-beta02

7 août 2019

Publication d'androidx.recyclerview:recyclerview:1.1.0-beta02. Les commits inclus dans cette version sont disponibles sur cette page.

Nouvelles fonctionnalités

  • RecyclerView dispose maintenant d'un attribut de style par défaut : recyclerViewStyle, qui permet de définir le style par défaut dans votre thème

Corrections de bugs

  • Correction d'un bug qui empêchait RecyclerView de désactiver l'interception tactile lors du défilement. Cela provoquait le défilement d'un NestedScrollingParent. (b/131115697, aosp/1055911)

Version 1.1.0-beta01

2 juillet 2019

Publication d'androidx.recyclerview:recyclerview:1.1.0-beta01. Les commits inclus dans cette version sont disponibles sur cette page.

Nouvelles fonctionnalités

  • RecyclerView participe désormais au défilement imbriqué lorsqu'un défilement est lancé via des événements d'accessibilité. (aosp/973584)

Version 1.1.0-alpha06

5 juin 2019

Publication d'androidx.recyclerview:recyclerview:1.1.0-alpha06 et d'androidx.recyclerview:recyclerview-selection:1.1.0-alpha06. Les commits inclus dans cette version sont disponibles sur cette page.

Nouvelles fonctionnalités

  • Ajout d'une surcharge associée à smoothScrollBy : RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration), qui vous permet de spécifier une durée en millisecondes pour la durée de l'animation. (aosp/952807)

Modifications apportées à l'API

  • GridLayoutManager et StaggeredGridLayoutManager n'étiquettent plus automatiquement les éléments complets comme en-têtes pour des raisons d'accessibilité (aosp/969703)
  • Conserve l'ordre de sélection (par heure de création) dans recyclerview-selection (aosp/937279)

Corrections de bugs

  • Correction d'un bug qui provoquait un déplacement de RecyclerView à des vitesses incorrectes dans une situation de défilement imbriqué. (aosp/961642)
  • Améliorations de stabilité apportées à recyclerview-selection (aosp/960213, aosp/926296)

Version 1.1.0-alpha05

7 mai 2019

Publication d'androidx.recyclerview:recyclerview:1.1.0-alpha05 et d'androidx.recyclerview:recyclerview-selection:1.1.0-alpha05. Les commits inclus dans cette version sont disponibles sur cette page.

Nouvelles fonctionnalités

  • LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) peut être ignoré pour personnaliser l'espace supplémentaire à ajouter de chaque côté de la RecyclerView associée. (aosp/931259)

Modifications apportées à l'API

  • Ajout d'une API pour récupérer le drawable DividerItemDecoration (aosp/937282)
  • Abandon de LinearLayout.getExtraLayoutSpace(RecyclerVew.State) au profit d'un nouveau mécanisme permettant de disposer d'un espace de mise en page supplémentaire personnalisé des deux côtés. La nouvelle méthode est LinearLayout.calculateExtraLayoutSpace(RecyclerView.state, int[]) (aosp/931259).

Corrections de bugs

  • Sélection du geste nettoyée (aosp/940781)
  • Conservation de l'ordre de sélection (par heure de création) (b/128455535)

Version 1.1.0-alpha04

3 avril 2019

Publication d'androidx.recyclerview:recyclerview:1.1.0-alpha04. Les commits inclus dans cette version sont disponibles sur cette page.

Corrections de bugs

  • Auparavant, les OnItemTouchListener RV ne pouvaient pas intercepter le signal ACTION_UP, ce qui empêchait le modèle OnItemTouchListener de bloquer les autres codes pour répondre à ACTION_UP. Ce problème est maintenant résolu : (aosp/916137)

Version 1.1.0-alpha03

13 mars 2019

Publication d'androidx.recyclerview:recyclerview:1.1.0-alpha03. La liste complète des commits inclus dans cette version est disponible sur cette page.

Nouvelles fonctionnalités

  • GridLayoutManager : activation, estimation de la barre de défilement GridLayoutManager de résolution plus élevée (AOSP/838836) :
    • Utilise les informations de span pour estimer les dimensions de la barre de défilement pour un GridLayoutManager.
    • Pour l'activer, appelez GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) en transmettant la valeur "true".
    • Pour en savoir plus, consultez la documentation sur GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean).

Corrections de bugs

  • Accessibilité : correction d'un bug qui survenait lorsqu'un élément ViewHolder était recyclé, puis renvoyé. L'ItemDelegate associé au RecyclerViewAccessibilityDelegate de la RecyclerView n'était pas associé à l'itemView du Viewholder, ce qui entraînait des problèmes d'accessibilité. Ce problème est maintenant résolu (aosp/917740).

Version 1.1.0-alpha02

30 janvier 2019

Publication d'androidx.recyclerview:recyclerview 1.1.0-alpha02.

Modifications apportées à l'API

  • Abandon de RecyclerView.setLayoutFrozen(boolean) et de RecyclerView.isLayoutFrozen(), remplacées par RecyclerView.suppressLayout(boolean) et RecyclerView.isLayoutSuppressed(). (aosp/839414)
  • RecyclerView.setLayoutTransition(LayoutTransition) est officiellement obsolète et génère une erreur IllegalArgumentException lorsqu'elle est appelée avec une valeur non nulle. (aosp/839414)

Corrections de bugs

  • Correction d'un bug dans les RV lors duquel SmoothScroller n'était jamais arrêté (aosp/843741)
  • Correction d'un bug en raison duquel SCROLL_STATE_IDLE n'était pas toujours appelé à la fin d'une animation défilante (aosp/812576)

Version 1.1.0-alpha01

3 décembre 2018

Publication de androidx.recyclerview 1.1.0-alpha01 et de androidx.recyclerview-selection 1.1.0-alpha01.

androidx.recyclerview 1.1.0-alpha01

Modifications apportées à l'API

  • aosp/723649 : RecyclerView implémente désormais NestedScrollingChild3, ce qui lui permet d'être avertie lorsque tous ses parents à défilement imbriqué ont cessé de consommer des distances de défilement imbriquées. Si le code de développeur ignore actuellement RecyclerView.onNestedScroll(View, int, int, int, int, int), il ne sera probablement plus appelé. RecyclerView.onNestedScroll(View, int, int, int, int, int, int[]) devra être ignoré à la place.

Corrections de bugs

  • Résolution du plantage qui survenait lors de l'utilisation de TransitionManager pour réduire/développer un élément dans RecyclerView (b/37129527).
  • Correction d'un problème d'incohérence entre le comportement de RecyclerView.OnItemTouchListener et ceux de onInterceptTouchEvent et de onTouchEvent dans le système de vue (aosp/721235)
  • Correction de plusieurs bugs de cas particuliers affectant le défilement fluide (aosp/729718, aosp/747168, aosp/812576)
  • Correction de la stratégie d'ancrage dans PagerSnapHelper pour traiter les vues enfants non courantes (aosp/795752)

androidx.recyclerview-selection 1.1.0-alpha01

Corrections de bugs

  • Correction de ConcurrentModificationException qui survenait lorsque l'ensemble de données changeait avec la suppression de la sélection.

RecyclerView-Selection version 1.1.0

RecyclerView-Selection version 1.1.0

27 janvier 2021

Publication d'androidx.recyclerview:recyclerview-selection:1.1.0. Liste des commits de la version 1.1.0

Principales modifications depuis la version 1.0.0

  • Nombreuses améliorations de la stabilité.
  • Les méthodes withGestureTooltypes et withPointerTooltypes sont obsolètes sur SelectionTracker.Builder. Elles seront supprimées dans une prochaine version.

RecyclerView-Selection version 1.1.0-rc03

1er octobre 2020

Publication d'androidx.recyclerview:recyclerview-selection:1.1.0-rc03. Liste des commits de la version 1.1.0-rc03

Correction de bugs

Merci à Stefan Kiesler pour les tests de corrections et ses commentaires.

  • Résolution du problème d'appel inattendu des OnClickListeners lors de la sélection active.
  • Gestionnaire de souris (band-selection) > Gestion fluide des défilements inattendus (b/167821507)

RecyclerView-Selection version 1.1.0-rc02

2 septembre 2020

Publication d'androidx.recyclerview:recyclerview-selection:1.1.0-rc02. Liste des commits de la version 1.1.0-rc02

Temps forts

  • Correction de plusieurs régressions de la gestion des entrées à partir de la version 1.0.
  • La bibliothèque onRequestDisallowInterceptTouchEvent a été mise à jour afin de fonctionner correctement avec ItemTouchHelper. Il suffit désormais de la faire glisser hors de l'écran.

Correction de bugs

  • Correction du problème qui entraînait l'interprétation erronée des événements GestureDetector par la bibliothèque de sélection, avec pour conséquence des pressions perdues lors de la sélection active (b/165030422).
  • La sélection n'était pas mise à jour pour refléter les éléments supprimés de l'adaptateur. Ce problème a été résolu. (b/138932671)
  • Résolution du problème lié aux éléments de RecyclerView qui déclenchaient des événements onClick alors qu'une sélection était active dans le SelectionTracker (b/161162268)
  • Désormais capable de gérer onRequestDisallowInterceptTouchEvent correctement
  • Résolution du problème lié à l'affichage de ”Cannot call this method in a scroll callback” lorsque l'utilisateur faisait défiler la page sur Q
  • Mise à jour de la documentation (en particulier dans StableIdKeyProvider) pour indiquer clairement les exigences de l'instance RecyclerView

Recyclerview-Selection version 1.1.0-rc01

5 février 2020

Publication d'androidx.recyclerview:recyclerview-selection:1.1.0-rc01. Liste des commits de la version 1.1.0-rc01

Corrections de bugs

  • Il était difficile de faire défiler RecyclerView avec une sélection de gestes en cas d'interaction avec une AppBarLayout déroulante (aosp/1193934)

RecyclerView-Selection version 1.1.0-beta01

4 décembre 2019

Publication d'androidx.recyclerview:recyclerview-selection:1.1.0-beta01. Liste des commits de la version 1.1.0-beta01

Améliorations générales de la stabilité liées aux vérifications défensives et à la gestion de l'état interne

Corrections de bugs

  • Amélioration de la gestion de l'état de la bibliothèque et de l'interprétation des événements CANCEL, ce qui a permis d'améliorer la stabilité

Modifications apportées à l'API

  • Ajout d'un paramètre de type de clé de sélection aux classes et méthodes lorsqu'il n'était pas disponible.
  • Méthodes obsolètes :
    • SelectionTracker.Builder#withPointerTooltype
    • SelectionTracker.Builder#withGestureTooltype
    • Ces méthodes permettaient aux développeurs de faire correspondre le comportement du pointeur ou du geste à des tooltypes autres que ceux par défaut*. L'intention était bonne, mais au fil des utilisations, il est devenu évident que les attentes des utilisateurs concernant le comportement des entrées étaient très spécifiques au tooltype. De plus, les stylets "passifs" sont des outils de type FINGER dans le système de saisie Android.
    • Les tooltypes par défaut sont FINGER pour le geste et MOUSE pour le pointeur.