Recyclerview
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 |
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.
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
- Abandon des API
ViewCompat.LAYOUT_DIRECTION_
. (I51710, b/317055535)
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, carGestureDetector
est disponible à partir deminSdk
. (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
etsetVerboseLoggingEnabled
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 comprisComposeView
) en rattachant temporairement les vues dissociées lors de l'appel deonBind
. (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 lesViewCompositionStrategy
MyComposeAdapter
etDisposeOnViewTreeLifecycleDestroyed
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'unViewHolder
, par exempleSpanSizeLookup
. (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 lesViewCompositionStrategy
MyComposeAdapter
etDisposeOnViewTreeLifecycleDestroyed
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, pourSpanSizeLookup
(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 unConcatAdapter
renvoient désormais la bonne position d'adaptateur lorsqu'ils sont interrogés dans le rappelonViewRecycled
. (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.
- En conséquence,
ViewHolder.getAdapterPosition
est obsolète et a été remplacée par deux nouvelles méthodes :- getBindingAdapterPosition renvoie la position par rapport à l'Adapter qui a associé cet élément.
- getAbsoluteAdapterPosition renvoie la position par rapport à l'ensemble de la RecyclerView.
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
dansStaggeredGridLayoutManager
(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 deadapter2
.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
etLinearSnapHelper
tiennent désormais compte de la marge intérieure de RecyclerView, quelle que soit la valeur declipToPadding
(b/139452422, b/139012032, aosp/1103182, aosp/1106715, aosp/1130728.RecyclerView.setLayoutTransition(LayoutTransition)
est officiellement obsolète et génère une erreurIllegalArgumentException
lorsqu'elle est appelée avec une valeur non nulle. UtilisezRecyclerView.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 actuellementRecyclerView.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
etLinearSnapHelper
tiennent désormais compte de la marge intérieure des RecyclerViews, quelle que soit la valeur declipToPadding
(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
etdy
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
etStaggeredGridLayoutManager
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 estLinearLayout.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éfilementGridLayoutManager
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)
.
- Utilise les informations de span pour estimer les dimensions de la barre de défilement pour un
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 deRecyclerView.isLayoutFrozen()
, remplacées parRecyclerView.suppressLayout(boolean)
etRecyclerView.isLayoutSuppressed()
. (aosp/839414) RecyclerView.setLayoutTransition(LayoutTransition)
est officiellement obsolète et génère une erreurIllegalArgumentException
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 actuellementRecyclerView.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 dansRecyclerView
(b/37129527). - Correction d'un problème d'incohérence entre le comportement de
RecyclerView.OnItemTouchListener
et ceux deonInterceptTouchEvent
et deonTouchEvent
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
etwithPointerTooltypes
sont obsolètes surSelectionTracker.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.