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-alpha02
recyclerview-selection 1.1.0 - - 1.2.0-alpha01
Dernière mise à jour de la bibliothèque: 7 août 2024

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-alpha02

7 août 2024

Publication d'androidx.recyclerview:recyclerview:1.4.0-alpha02. La version 1.4.0-alpha02 contient ces commits.

Remarque de compatibilité: Cette version ne sera compilée qu'avec le SDK API 35 (Vanilla Ice Cream) ou version ultérieure. Si des avertissements AGP (plug-in Android Gradle) s'affichent lors de la mise à niveau, vous pouvez les supprimer.

Modifications apportées à l'API

Nouvelles fonctionnalités

  • Prise en charge de la fréquence d'actualisation variable: RecyclerView appelle désormais setFrameContentVelocity lors d'un défilement via OverScroller (par exemple, lors d'un glissement d'un geste vif ou d'un défilement fluide). (I8f8a4).

Autres modifications

  • Suppression de la description manuelle de l'accès aux nouvelles API de la plate-forme, car cela se fait automatiquement via la modélisation des API lors de l'utilisation de R8 avec AGP 7.3 ou version ultérieure (par exemple, R8 version 3.3) et pour tous les builds utilisant AGP 8.1 ou version ultérieure (par exemple, D8 version 8.1). Les clients qui n'utilisent pas AGP sont invités à passer à la version 8.1 ou ultérieure de D8. Consultez cet article pour en savoir plus. (Ia60e0, b/345472586).
  • Ajoutez un type de vue d'élément à RecyclerView lier/créer des sections de trace, et attribuez l'étiquette "forcé - required next frame" aux préchargements RV s'ils sont censés être utilisés par le frame suivant, et ils doivent donc commencer à travailler dès que possible. (I8ec3e, b/309523615).
  • Mettez à jour compileSdk vers la version 35 (pour en savoir plus, consultez la section "Note de compatibilité" ci-dessus). 5dc41be

Contribution externe

  • GestureDetectorCompat est désormais obsolète, car GestureDetector est disponible à partir de minSdk. (Icc4cd).

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 provoquait des plantages sporadiques pendant les 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 provoquant des plantages sporadiques pendant les 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 consulter les notes de version de la version précédente, accédez à 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 au minimum lors de la mise à jour vers cette version de RecyclerView pour éviter les plantages.

Modifications apportées à l'API

  • Ajout de nouvelles méthodes setDebugAssertionsEnabled et setVerboseLoggingEnabled pouvant 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 rattachant temporairement les 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 offre des améliorations de performances (auparavant incluses dans les versions 1.3.0-alpha02 et 1.3.0-beta01) lorsqu'elle est utilisée avec Jetpack Compose. Si vous utilisez Compose 1.2.0-beta02 ou une version ultérieure, et les ViewCompositionStrategy MyComposeAdapter et DisposeOnViewTreeLifecycleDestroyed décrites 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 nouvelle méthode ConcatAdapter.getWrappedAdapterAndPosition pour permettre de récupérer des informations sur l'adaptateur encapsulé dans les cas où vous ne disposez pas d'un ViewHolder, par exemple 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)

Corrections 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).

Corrections 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.

Corrections 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

Corrections 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

Corrections 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

Corrections 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

Corrections 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).

Corrections 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).

Corrections 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

Corrections 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.

Corrections 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.