Recyclerview
En esta tabla, se enumeran todos los artefactos del grupo androidx.recyclerview
.
Artefacto | Versión estable | Versión potencial | Versión beta | Versión Alfa |
---|---|---|---|---|
recyclerview | 1.3.2 | - | - | 1.4.0-alpha02 |
recyclerview-selection | 1.1.0 | - | - | 1.2.0-alpha01 |
Cómo declarar dependencias
Para agregar una dependencia en RecyclerView, debes agregar el repositorio Maven de Google a tu proyecto. Consulta el repositorio Maven de Google para obtener más información.
Agrega las dependencias de los artefactos que necesites en el archivo build.gradle
de tu app o módulo:
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") }
Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.
Comentarios
Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.
Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.
Versión 1.4
Versión 1.4.0-alpha02
7 de agosto de 2024
Lanzamiento de androidx.recyclerview:recyclerview:1.4.0-alpha02
. La versión 1.4.0-alpha02 contiene estas confirmaciones.
Nota de compatibilidad: Esta versión solo se compilará con el SDK de API 35 (Vanilla Ice Cream) o versiones posteriores. Si ves advertencias de AGP (complemento de Android para Gradle) cuando realizas la actualización, puedes suprimirlas.
Cambios en la API
- Se dieron de baja las APIs de
ViewCompat.LAYOUT_DIRECTION_
(I51710, b/317055535).
Nuevas funciones
- Compatibilidad con frecuencias de actualización variables: RecyclerView ahora llama a
setFrameContentVelocity
cuando se desplaza a través de Overscroller (como la configuración de un desplazamiento o un desplazamiento fluido). (I8f8a4).
Otros cambios
- Se quitó la descripción manual del acceso a las nuevas APIs de la plataforma, ya que esto sucede automáticamente a través del modelado de APIs cuando se usa R8 con AGP 7.3 o versiones posteriores (por ejemplo, R8 versión 3.3) y para todas las compilaciones cuando se usa AGP 8.1 o versiones posteriores (p. ej., D8 versión 8.1). Se recomienda a los clientes que no usan AGP que actualicen a D8 8.1 o versiones posteriores. Consulta este artículo para obtener más detalles. (Ia60e0, b/345472586).
- Agrega el tipo de vista de elementos a las secciones de seguimiento de vinculación y creación de
RecyclerView
y etiqueta las cargas previas de RV como "forced - needed siguiente fotograma". si se espera que se usen en el siguiente fotograma y, por lo tanto, deberían comenzar a funcionar lo antes posible. (I8ec3e, b/309523615). - Actualiza
compileSdk
a 35 (consulta la sección "Nota de compatibilidad" más arriba para obtener más información). 5dc41be
Contribución externa
GestureDetectorCompat
dejó de estar disponible, ya queGestureDetector
está disponible enminSdk
. (Icc4cd).
Versión 1.4.0-alpha01
18 de octubre de 2023
Lanzamiento de androidx.recyclerview:recyclerview:1.4.0-alpha01
. La versión 1.4.0-alpha01 contiene estas confirmaciones.
Cambios en la API
- Se agregó la API de
RecyclerView$LayoutManager#isLayoutReversed
. (I4970e).
Correcciones de errores
- Se corrigió un error que causaba fallas esporádicas durante las animaciones. (I42f22b) (también se incluye en 1.3.2)
Versión 1.3.2
Versión 1.3.2
18 de octubre de 2023
Lanzamiento de androidx.recyclerview:recyclerview:1.3.2
. La versión 1.3.2 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió un error que provocaba fallas esporádicas durante las animaciones. (I42f22b).
Versión 1.3.1
Versión 1.3.1
26 de julio de 2023
Lanzamiento de androidx.recyclerview:recyclerview:1.3.1
sin cambios desde la versión 1.3.1-rc01. La versión 1.3.1 contiene estas confirmaciones.
Para ver las notas de la versión anterior, consulta nuestra página de notas de la versión.
Versión 1.3.1-rc01
24 de mayo de 2023
Lanzamiento de androidx.recyclerview:recyclerview:1.3.1-rc01
. La versión 1.3.1-rc01 contiene estas confirmaciones.
Los usuarios de ViewPager2 deben actualizar al menos a la versión 1.1.0-beta02 cuando actualicen a esta versión de RecyclerView
para evitar fallas.
Cambios en la API
- Se agregaron nuevos métodos
setDebugAssertionsEnabled
ysetVerboseLoggingEnabled
que puedan ayudar a depurar problemas relacionados conRecyclerView
en las apps. (I514b9).
Correcciones de errores
- Para corregir las fallas de los usuarios de
ViewTreeLifecycleOwner
(incluidaComposeView
), vuelve a adjuntar temporalmente las vistas separadas temporalmente cuando llames aonBind
. (I7244f2c, b/265347515, b/283288295).
Versión 1.3.0
Versión 1.3.0
8 de marzo de 2023
Lanzamiento de androidx.recyclerview:recyclerview:1.3.0
sin cambios desde la versión 1.3.0-rc01. La versión 1.3.0 contiene estas confirmaciones.
Cambios importantes desde 1.2.0
- Esta versión contiene mejoras de rendimiento (incluidas anteriormente en 1.3.0-alpha02 y 1.3.0-beta01) cuando se usa con Jetpack Compose. Si usas Compose
1.2.0-beta02
o versiones posteriores, y usabasMyComposeAdapter
yDisposeOnViewTreeLifecycleDestroyed
ViewCompositionStrategy
descritos en los lineamientos de interoperabilidad anteriores, debes quitarlos, ya que ya no son una mejora con respecto al estado predeterminado. - Se agregó un nuevo método
ConcatAdapter.getWrappedAdapterAndPosition
para permitir la recuperación de información del adaptador unido en situaciones en las que no tienes unViewHolder
, como unSpanSizeLookup
. (I2bd4c, b/191543920)
Versión 1.3.0-rc01
21 de septiembre de 2022
Lanzamiento de androidx.recyclerview:recyclerview:1.3.0-rc01
. La versión 1.3.0-rc01 contiene estas confirmaciones.
- No hay cambios desde la última versión.
Versión 1.3.0-beta02
10 de agosto de 2022
Lanzamiento de androidx.recyclerview:recyclerview:1.3.0-beta02
. La versión 1.3.0-beta02 contiene estas confirmaciones.
Cambios en la API
- Se quitaron las anotaciones de nulabilidad agregadas en la versión 1.3.0-beta01 debido a que representaban un cambio significativo incompatible con el código fuente para los usuarios de Kotlin (I7a258, I1557E6, I8db76 ).
Versión 1.3.0-beta01
29 de junio de 2022
Se lanzó androidx.recyclerview:recyclerview:1.3.0-beta01
. La versión 1.3.0-beta01 contiene estas confirmaciones.
Nuevas funciones
- Esta versión beta incluye mejoras de rendimiento (que se incluían anteriormente en 1.3.0-alpha02 cuando se usaba con Jetpack Compose). Si usas Compose
1.2.0-beta02
o versiones posteriores, y usabasMyComposeAdapter
yDisposeOnViewTreeLifecycleDestroyed
ViewCompositionStrategy
, según se describió en los lineamientos de interoperabilidad anteriores, debes quitarlos, dado que ya no son útiles con el estado predeterminado.
Cambios en la API
- Se agregaron anotaciones de nulabilidad para varios métodos y parámetros a fin de mejorar las advertencias de lint para los usuarios de Java y la interoperabilidad para los usuarios de Kotlin. Podría tratarse de un cambio rotundo para algunas personas que usan Kotlin y podría ocasionar advertencias o errores de lint adicionales para algunos usuarios de Java (I61829, b/236487044; Ia0b6f; I6f119, b/236487209; Ibe1de, b/236487210).
Correcciones de errores
- Para garantizar que las cuadrículas se traten como tales por servicios de a11y, configura un nombre de clase de información de nodo de a11y (I12812).
Versión 1.3.0-alpha02
6 de abril de 2022
Lanzamiento de androidx.recyclerview:recyclerview:1.3.0-alpha02
. La versión 1.3.0-alpha02 contiene estas confirmaciones.
Cambios en la API
- Agregamos métodos
BuildCompat
experimentales para SDK futuros (Iafd82, b/207528937). - Se agregó un nuevo método
ConcatAdapter.getWrappedAdapterAndPosition
para permitir la recuperación de información del adaptador unido en situaciones en las que no tienes un ViewHolder, comoSpanSizeLookup
(I2bd4c, b/191543920).
Correcciones de errores
- Se agregó integración con la nueva biblioteca PoolingContainer de AndroidX (Ib89d2).
- Se modificó la distancia de desplazamiento para la acción de accesibilidad (If74ae).
Versión 1.3.0-alpha01
15 de septiembre de 2021
Lanzamiento de androidx.recyclerview:recyclerview:1.3.0-alpha01
. La versión 1.3.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- Se agregó compatibilidad con RecyclerView para sobredesplazamiento de estiramiento. (Iab877)
RecyclerView-Selection versión 1.2.0
Versión 1.2.0-alpha01
5 de mayo de 2021
Lanzamiento de androidx.recyclerview:recyclerview-selection:1.2.0-alpha01
. La versión 1.2.0-alpha01 contiene estas confirmaciones.
Correcciones de errores
- Se solucionó un problema por el que se perdía el mapeo de las posiciones o teclas en KeyProvider cuando aún no se había reciclado la entrada. (b/145767095)
Versión 1.2.1
Versión 1.2.1
2 de junio de 2021
Lanzamiento de androidx.recyclerview:recyclerview:1.2.1
. La versión 1.2.1 contiene estas confirmaciones.
Correcciones de errores
- Los elementos
ViewHolder
dentro de unConcatAdapter
ahora muestran la posición correcta del adaptador cuando se busca en la devolución de llamada deonViewRecycled
. (b/187339376)
Versión 1.2.0
Versión 1.2.0
7 de abril de 2021
Lanzamiento de androidx.recyclerview:recyclerview:1.2.0
. La versión 1.2.0 contiene estas confirmaciones.
Cambios importantes desde la versión 1.1.0
ConcatAdapter: Este nuevo adaptador te permite concatenar fácilmente varios adaptadores en el mismo RecyclerView. Consulta la entrada de blog para obtener más información.
- Como parte de este cambio, se dio de baja
ViewHolder.getAdapterPosition
y se reemplazó por dos métodos nuevos:- getBindingAdapterPosition muestra la posición relativa al adaptador que vincula ese elemento.
- getAbsoluteAdapterPosition muestra la posición relativa a todo RecyclerView.
Lazy State Restoration: El adaptador de RecyclerView ahora puede retrasar la restauración de estado hasta que se cargue su contenido. Para obtener más detalles, consulta la documentación.
Versión 1.2.0-rc01
24 de marzo de 2021
Lanzamiento de androidx.recyclerview:recyclerview:1.2.0-rc01
. La versión 1.2.0-rc01 contiene estas confirmaciones.
Correcciones de errores
- Ahora
ConcatAdapter.Config.Builder
tiene valores predeterminados que coinciden conConfig.DEFAULT
. (b/157169835)
Versión 1.2.0-beta02
24 de febrero de 2021
Lanzamiento de androidx.recyclerview:recyclerview:1.2.0-beta02
. La versión 1.2.0-beta02 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió el error por el cual el relleno superior provocaba que el efecto de resplandor del desplazamiento alcanzara el área con relleno, en lugar de moverse hacia abajo y respetarlo. (I6b61d, b/118399122)
Versión 1.2.0-beta01
2 de diciembre de 2020
Lanzamiento de androidx.recyclerview:recyclerview:1.2.0-beta01
sin modificaciones desde 1.2.0-alpha06
. La versión 1.2.0-beta01 contiene estas confirmaciones.
Versión 1.2.0-alpha06
1 de octubre de 2020
Lanzamiento de androidx.recyclerview:recyclerview:1.2.0-alpha06
. La versión 1.2.0-alpha06 contiene estas confirmaciones.
Nuevas funciones
- Se agregó compatibilidad para agregar varios RecyclerListeners. (I70ad8, b/145767095)
Cambios en la API
- RecyclerView.setRecyclerListener(RecyclerListener) dejó de estar disponible. (I70ad8, b/145767095)
Versión 1.2.0-alpha05
22 de julio de 2020
Lanzamiento de androidx.recyclerview:recyclerview:1.2.0-alpha05
. La versión 1.2.0-alpha05 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió el error por el cual, si un objeto RecyclerView solo tiene un elemento y está enfocado, enfocar hacia delante o hacia atrás no moverá el enfoque. (6f36b3)
- Se corrigió el elemento
ArrayIndexOutOfBoundsException
en el objetoStaggeredGridLayoutManager
. (49b601, b/122303625, b/74877618, b/160193663, b/37086625) - Se corrigió un error de medición en el que, en circunstancias específicas, el objeto RecyclerView no mostraba, de forma inapropiada, sus elementos secundarios. (89040c, b/138734786)
Contribuciones externas
- Agradecimientos a Kolin Krewinkel en nombre de Facebook por la contribución.
Versión 1.2.0-alpha04
24 de junio de 2020
Lanzamiento de androidx.recyclerview:recyclerview:1.2.0-alpha04
. La versión 1.2.0-alpha04 contiene estas confirmaciones.
Cambios en la API
- Se modificó el nombre de
MergeAdapter
porConcatAdapter
para evitar confusiones con diferentes comportamientos de combinación de datos. (c0540c, b/158019211).
Correcciones de errores
- Se implementaron mejoras en el desplazamiento automático cuando se quitan todos los elementos visibles. (fe8670, b/154124815)
Versión 1.2.0-alpha03
29 de abril de 2020
Lanzamiento de androidx.recyclerview:recyclerview:1.2.0-alpha03
. La versión 1.2.0-alpha03 contiene estas confirmaciones.
Nuevas funciones
- RecyclerView ahora tiene un método
nestedScrollBy
que permite el desplazamiento programático que colabora con el desplazamiento anidado. (Ibaa58)
Versión 1.2.0-alpha02
1 de abril de 2020
Lanzamiento de androidx.recyclerview:recyclerview:1.2.0-alpha02
. La versión 1.2.0-alpha02 contiene estas confirmaciones.
Esta versión y las versiones posteriores de RecyclerView no son compatibles con versiones anteriores de ViewPager2. Si actualmente usas androidx.viewpager2:viewpager2:1.0.0
o versiones anteriores, asegúrate de actualizar a androidx.viewpager2:viewpager2:1.1.0-alpha01
.
Nuevas funciones
MergeAdapter
- MergeAdapter: Es un adaptador de RecyclerView nuevo que puede combinar varios adaptadores de forma lineal.
MyAdapter adapter1 = ...; AnotherAdapter adapter2 = ...; MergeAdapter merged = new MergeAdapter(adapter1, adapter2); recyclerView.setAdapter(mergedAdapter);
En el ejemplo anterior, MergeAdapter presentará elementos de
adapter1
seguidos deadapter2
.Restablecimiento del estado diferido
RecyclerView.Adapter
:Se agregó una API nueva a la clase
RecyclerView.Adapter
que le permite al adaptador controlar cuándo se debe restablecer el estado de diseño.Por ejemplo, puedes llamar a:
myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);
para hacer que RecyclerView espere hasta que el adaptador no esté vacío antes de restablecer la posición de desplazamiento.
Ya no se propagarán de forma predeterminada CollectionInfo ni CollectionItemInfo.
Si quieres que los servicios de accesibilidad (por ejemplo, TalkBack) aún indiquen el recuento y el índice de elementos al usuario, deberás propagar CollectionInfo y CollectionItemInfo.
Estos objetos ya no se propagan en el framework porque este no puede determinar el recuento de elementos que percibe el usuario (como separadores, encabezados o elementos de RecyclerView que representan varios elementos percibidos).
Correcciones de errores
- Ahora, RecyclerView evita el anclaje en las Vistas fuera del viewport cuando cambia el tamaño de este
- Se corrigió un error en DiffUtil en el que se podía calcular mal la diferencia cuando un elemento original de la primera lista se duplicaba varias veces en la segunda lista. (b/123376278)
Versión 1.2.0-alpha01
18 de diciembre de 2019
Lanzamiento de androidx.recyclerview:recyclerview:1.2.0-alpha01
. La versión 1.2.0-alpha01 contiene estas confirmaciones.
Correcciones de errores
- Se corrigieron problemas menores con FastScroller relacionados con la precisión táctil y del dibujo de derecha a izquierda. (b/143789932, aosp/1130438)
- Se corrigió el bloqueo de ItemTouchHelper cuando se quitaba de RecyclerView mientras se ejecutaban las animaciones de ItemTouchHelper. (b/140447176, aosp/1167575)
Versión 1.1.0
Versión 1.1.0
20 de noviembre de 2019
Lanzamiento de androidx.recyclerview:recyclerview:1.1.0
. La versión 1.1.0 contiene estas confirmaciones.
Cambios importantes desde la versión 1.0.0
PagerSnapHelper
yLinearSnapHelper
ahora tienen en cuenta el relleno de RecyclerView independientemente del valor declipToPadding
. (b/139452422, b/139012032, aosp/1103182, aosp/1106715, aosp/1130728)- Se dio formalmente de baja
RecyclerView.setLayoutTransition(LayoutTransition)
y arrojará un valorIllegalArgumentException
cuando se lo llame con un valor no nulo. En su lugar, usaRecyclerView.setItemAnimator(ItemAnimator)
. (aosp/839414) - aosp/723649: RecyclerView ahora implementa
NestedScrollingChild3
, lo que le permite saber cuándo todos los elementos superiores de desplazamiento anidado dejaron de consumir distancias de desplazamiento anidado. Si, por el momento, el código del desarrollador anulaRecyclerView.onNestedScroll(View, int, int, int, int, int)
, es probable que ya no se los llame, por lo que se debería anularRecyclerView.onNestedScroll(View, int, int, int, int, int, int[])
. - RecyclerView ahora tiene un atributo de estilo predeterminado,
recyclerViewStyle
, que permite configurar el estilo predeterminado de tu tema. - La API de acciones de accesibilidad de ViewCompat ya no corrompe RecyclerView ItemDelegate.
- Se puede anular
LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[])
para personalizar la cantidad de espacio de diseño adicional que se desea agregar al costado del RecyclerView asociado. (aosp/931259) - Se agregó una nueva sobrecarga de smoothScrollBy,
RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration)
, que te permite especificar un valor en milisegundos para la duración de la animación. (aosp/952807)
Versión 1.1.0-rc01
23 de octubre de 2019
Lanzamiento de androidx.recyclerview:recyclerview:1.1.0-rc01
. La versión 1.1.0-rc01 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió un error de "Aplicación no responde" cuando se anulaba
RecyclerViewAccessibilityDelegate.ItemDelegate
. (aosp/1138057, aosp/1133434)
Versión 1.1.0-beta05
9 de octubre de 2019
Lanzamiento de androidx.recyclerview:recyclerview:1.1.0-beta05
. La versión 1.1.0-beta05 contiene estas confirmaciones.
Cambios en la API
- Después de aosp/1106715 y aosp/1103182, ahora LinearSnapHelper y PagerSnapHelper mostrarán la vista que esté en el centro de los límites de RecyclerView, menos el relleno, a pesar del valor de clipToPadding. (aosp/1130728)
Correcciones de errores
- Se solucionó un problema por el que RecyclerView generaba nodos de accesibilidad duplicados para sus elementos secundarios. (aosp/1130618)
- Se solucionó un problema que provocaba que no funcionaran las jerarquías de accesibilidad virtual de RecyclerViews.
- Se solucionó un problema por el que no se utilizaban elementos personalizados de ItemDelegates.
Versión 1.1.0-beta04
5 de septiembre de 2019
Lanzamiento de androidx.recyclerview:recyclerview:1.1.0-beta04
. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.
Correcciones de errores
PagerSnapHelper
yLinearSnapHelper
ahora tienen en cuenta el relleno de RecyclerView independientemente del valor declipToPadding
. (b/139452422, b/139012032, aosp/1103182, aosp/1106715)- Se corrigió un error en el que RecyclerView no rechazaba la interceptación táctil cuando el desplazamiento previo anidado hacía que se desplazara
NestedScrollingParent
. (b/138668210, aosp/1105373). Esto beneficia a bibliotecas como ViewPager2. - RecyclerView ahora va constantemente a
SCROLL_STATE_DRAGGING
antes de que se envíen los desplazamientos previos anidados. (aosp/1105373) - El desplazamiento previo anidado ya no se realiza antes de que el gesto exceda la inclinación táctil. (b/139530818, aosp/1105373)
- Los argumentos
dx
ydy
enviados a los pre-desplazamientos anidados se establecen en cero cuando RecyclerView no puede desplazarse en esa dirección. (aosp/1105373)
Versión 1.1.0-beta03
15 de agosto de 2019
Lanzamiento de androidx.recyclerview:recyclerview:1.1.0-beta03
. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.
Cambios en la API
- RecyclerView ahora despacha distancias de desplazamiento a través de
View.onScrollChanged(int l, int t, int oldl, int oldt)
, de modo que los servicios de accesibilidad sean notificados con precisión respecto de los cambios de desplazamiento. (aosp/1007823)
Correcciones de errores
- Se corrigió un error importante de desbordamiento de pila de errores relacionado con RecyclerView y la accesibilidad (aosp/1099577).
Versión 1.1.0-beta02
7 de agosto de 2019
Lanzamiento de androidx.recyclerview:recyclerview:1.1.0-beta02
. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.
Nuevas funciones
- RecyclerView ahora tiene un atributo de estilo predeterminado,
recyclerViewStyle
, que permite configurar el estilo predeterminado de tu tema.
Correcciones de errores
- Se corrigió un error por el que RecyclerView no impedía la intercepción táctil durante el desplazamiento, lo que hacía desplazar a NestedScrollingParent. (b/131115697, aosp/1055911)
Versión 1.1.0-beta01
2 julio de 2019
Lanzamiento de androidx.recyclerview:recyclerview:1.1.0-beta01
. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.
Nuevas funciones
RecyclerView
ahora participa en el desplazamiento anidado cuando se inicia un desplazamiento mediante eventos de accesibilidad. (aosp/973584)
Versión 1.1.0-alpha06
5 de junio de 2019
Lanzamiento de androidx.recyclerview:recyclerview:1.1.0-alpha06
y androidx.recyclerview:recyclerview-selection:1.1.0-alpha06
. Para conocer las confirmaciones incluidas en esta versión, consulta este artículo.
Nuevas funciones
- Se agregó una nueva sobrecarga de smoothScrollBy,
RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration)
, que te permite especificar un valor en milisegundos para la duración de la animación. (aosp/952807)
Cambios en la API
GridLayoutManager
yStaggeredGridLayoutManager
ya no etiquetan automáticamente los elementos de intervalo completo como encabezados para fines de accesibilidad. (aosp/969703)- Se conserva el orden de selección (por tiempo de creación) en
recyclerview-selection
. (aosp/937279)
Correcciones de errores
- Se corrigió un error por el que
RecyclerView
se desplazaba a velocidades incorrectas en una situación de desplazamiento anidado. (aosp/961642) - Se agregaron mejoras de estabilidad a
recyclerview-selection
. (aosp/960213, aosp/926296)
Versión 1.1.0-alpha05
7 de mayo de 2019
Lanzamiento de androidx.recyclerview:recyclerview:1.1.0-alpha05
y androidx.recyclerview:recyclerview-selection:1.1.0-alpha05
. Para conocer las confirmaciones incluidas en esta versión, consulta este artículo.
Nuevas funciones
- Se puede anular
LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[])
para personalizar la cantidad de espacio de diseño adicional que se desea agregar al costado del RecyclerView asociado. (aosp/931259)
Cambios en la API
- Se agregó una API para recuperar el elemento de diseño
DividerItemDecoration
. (aosp/937282) LinearLayout.getExtraLayoutSpace(RecyclerVew.State)
dejó de estar disponible y se lo reemplazó por un nuevo mecanismo que permite tener espacio de diseño adicional personalizado en ambos lados. El nuevo método esLinearLayout.calculateExtraLayoutSpace(RecyclerView.state, int[])
. (aosp/931259)
Correcciones de errores
- Se eliminó la selección de gestos (aosp/940781).
- Se conserva el orden de selección (por tiempo de creación) (b/128455535).
Versión 1.1.0-alpha04
3 de abril de 2019
Lanzamiento de androidx.recyclerview:recyclerview:1.1.0-alpha04
. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.
Correcciones de errores
- RV OnItemTouchListener no podía interceptar en ACTION_UP, lo que impedía que OnItemTouchListener's bloqueara la respuesta de otro código a ACTION_UP. Este problema fue solucionado (aosp/916137).
Versión 1.1.0-alpha03
13 de marzo de 2019
Lanzamiento de androidx.recyclerview:recyclerview:1.1.0-alpha03
. Para obtener una lista completa de las confirmaciones incluidas en esta versión, consulta este artículo.
Nuevas funciones
GridLayoutManager
: Cálculo de la dimensión de la barra de desplazamiento deGridLayoutManager
habilitable. (aosp/838836):- Utiliza información del intervalo para calcular las dimensiones de la barra de desplazamiento para un
GridLayoutManager
. - Si quieres habilitar la función, llama a
GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean)
pasando un valor verdadero. - Consulta la documentación sobre
GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean)
para obtener más información.
- Utiliza información del intervalo para calcular las dimensiones de la barra de desplazamiento para un
Correcciones de errores
- Accesibilidad: Se producía un error por el que, una vez que se reciclaba ViewHolder y luego se recuperaba, el objeto ItemDelegate asociado con el
RecyclerViewAccessibilityDelegate
de RecyclerView no se asociaba con el elemento ViewView de ViewHolder, lo que interrumpía la accesibilidad. Se solucionó este problema. (aosp/917740)
Versión 1.1.0-alpha02
30 de enero de 2019
Lanzamiento de androidx.recyclerview:recyclerview 1.1.0-alpha02
.
Cambios en la API
RecyclerView.setLayoutFrozen(boolean)
yRecyclerView.isLayoutFrozen()
dejaron de estar disponibles y se los reemplazó porRecyclerView.suppressLayout(boolean)
yRecyclerView.isLayoutSuppressed()
. (aosp/839414)- Se dio formalmente de baja
RecyclerView.setLayoutTransition(LayoutTransition)
y arrojará un valorIllegalArgumentException
cuando se lo llame con un valor no nulo. (aosp/839414)
Correcciones de errores
- Se corrigió un error en RV por el que nunca se detenía
SmoothScroller
. (aosp/843741) - Se corrigió un error por el que no era posible llamar a
SCROLL_STATE_IDLE
al final de una animación de desplazamiento. (aosp/812576)
Versión 1.1.0-alpha01
3 de diciembre de 2018
Lanzamiento de androidx.recyclerview 1.1.0-alpha01
y androidx.recyclerview-selection 1.1.0-alpha01
.
androidx.recyclerview 1.1.0-alpha01
Cambios en la API
- aosp/723649: RecyclerView ahora implementa
NestedScrollingChild3
, lo que le permite saber cuándo todos los elementos superiores de desplazamiento anidado dejaron de consumir distancias de desplazamiento anidado. Si, por el momento, el código del desarrollador anulaRecyclerView.onNestedScroll(View, int, int, int, int, int)
, es probable que ya no se los llame, por lo que se debería anularRecyclerView.onNestedScroll(View, int, int, int, int, int, int[])
.
Correcciones de errores
- Se solucionó una falla que se producía al usar
TransitionManager
para contraer/expandir elementos enRecyclerView
(b/37129527). - Se corrigió el error en el que el comportamiento de
RecyclerView.OnItemTouchListener
era inconsistente con el del sistema de visualización deonInterceptTouchEvent
yonTouchEvent
. (aosp/721235) - Se corrigieron algunos errores de casos límite relacionados con el desplazamiento suave. (aosp/729718, aosp/747168, aosp/812576)
- Se corrigió la estrategia de ajuste en
PagerSnapHelper
para procesar vistas secundarias no típicas. (aosp/795752)
androidx.recyclerview-selection 1.1.0-alpha01
Correcciones de errores
- Se corrigió el error
ConcurrentModificationException
que se arrojaba cuando se cambiaba el conjunto de datos al quitar la selección.
RecyclerView-Selection versión 1.1.0
RecyclerView-Selection versión 1.1.0
27 de enero de 2021
Lanzamiento de androidx.recyclerview:recyclerview-selection:1.1.0
. La versión 1.1.0 contiene estas confirmaciones.
Cambios importantes desde la versión 1.0.0
- Se realizaron varias mejoras de estabilidad.
- Los métodos
withGestureTooltypes
ywithPointerTooltypes
dejaron de estar disponibles enSelectionTracker.Builder
. Estos se quitarán en una versión futura.
RecyclerView-Selection versión 1.1.0-rc03
1 de octubre de 2020
Lanzamiento de androidx.recyclerview:recyclerview-selection:1.1.0-rc03
. La versión 1.1.0-rc03 contiene estas confirmaciones.
Correcciones de errores
Gracias a Stefan Kiesler por analizar correcciones y comentarios.
- Se solucionó el problema por el que se llamaba a la vista secundaria OnClickListeners de forma inesperada durante la selección activa.
- Controlador del mouse (selección de banda) > Controla correctamente los desplazamientos inesperados. (b/167821507)
RecyclerView-Selection versión 1.1.0-rc02
2 de septiembre de 2020
Lanzamiento de androidx.recyclerview:recyclerview-selection:1.1.0-rc02
. La versión 1.1.0-rc02 contiene estas confirmaciones.
Aspectos destacados
- Se abordaron varias regresiones a partir de la versión 1.0 en el control de entradas.
- Se actualizó la biblioteca para aceptar a
onRequestDisallowInterceptTouchEvent
, lo que permite que funcione bien con ItemTouchHelper.
Correcciones de errores
- Se corrigió el error por el cual la biblioteca de selección interpretaba incorrectamente los eventos de
GestureDetector
, lo que provocaba una pérdida de toques durante la selección activa. (b/165030422) - Se corrigió el error por el cual no se actualizaba la selección para reflejar los elementos que se quitaron del adaptador. (b/138932671)
- Se corrigió el error por el cual los elementos de RecyclerView activaban eventos onClick mientras SelectionTracker tenía selección activa (b/161162268).
- Ahora controla
onRequestDisallowInterceptTouchEvent
correctamente - Se corrigió el error por el cual se observa
”Cannot call this method in a scroll callback”
en el desplazamiento del mouse en Q - Documentos actualizados (especialmente en
StableIdKeyProvider
) para indicar claramente los requisitos de la instancia de RecyclerView
Recyclerview-Selection versión 1.1.0-rc01
5 de febrero de 2020
Lanzamiento de androidx.recyclerview:recyclerview-selection:1.1.0-rc01
. La versión 1.1.0-rc01 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió un problema por el que RecyclerView era difícil de desplazar con una selección de gestos si interactuaba con un AppBarLayout desplazable. (aosp/1193934)
RecyclerView-Selection versión 1.1.0-beta01
4 de diciembre de 2019
Lanzamiento de androidx.recyclerview:recyclerview-selection:1.1.0-beta01
. La versión 1.1.0-beta01 contiene estas confirmaciones.
Se implementaron mejoras generales en la estabilidad relacionadas con las verificaciones defensivas y la administración del estado interno.
Correcciones de errores
- Se mejoró la administración del estado de la biblioteca y la interpretación de los eventos CANCEL, lo que generó mejoras en la estabilidad.
Cambios en la API
- Se agregó el parámetro del tipo de clave de selección a las clases y los métodos donde faltaba.
- Métodos dados de baja:
- SelectionTracker.Builder#withPointerTooltype
- SelectionTracker.Builder#withGestureTooltype
- Estos métodos existían con el intent que los desarrolladores asignaban para el puntero o los comportamientos de gestos en función de tipos de herramienta distintos de los predeterminados*. El intent funcionaba, pero con el uso, fue evidente que las expectativas del usuario sobre el comportamiento de entrada se basan mucho en el tipo de herramienta. Además, las plumas stylus "pasivas" son tipos de herramientas FINGER en lo que respecta al sistema de entrada de Android.
- Los tipos de herramienta predeterminados son FINGER para gestos y MOUSE para el puntero.