Constraintlayout

Posiciona y ajusta el tamaño de los widgets de un modo flexible con posicionamiento relativo.

En esta tabla, se incluyen todos los artefactos del grupo androidx.constraintlayout.

Artefacto Versión estable actual Próxima versión potencial Versión beta Versión alfa
constraintlayout 2.0.4 - 2.1.0-beta02 -
constraintlayout-compose - - - 1.0.0-alpha06
Esta biblioteca se actualizó por última vez el 4 de mayo de 2021

Cómo declarar dependencias

Para agregar una dependencia en ConstraintLayout, debes agregar el repositorio de Maven de Google a tu proyecto. Lee 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:

dependencies {
    implementation "androidx.constraintlayout:constraintlayout:2.0.4"
    // To use constraintlayout in compose
    implementation "androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha06"
}

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 en esta biblioteca antes de crear uno nuevo. Para agregar tu voto a un error existente, haz clic en el botón de la estrella.

Cómo crear un error nuevo

Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.

ConstraintLayout-compose 1.0

ConstraintLayout-compose versión 1.0 proporciona funcionalidades de ConstraintLayout en Jetpack Compose.

Versión 1.0.0-alpha06

4 de mayo de 2021

Lanzamiento de androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha06.

  • Optimización de Compose: ConstraintLayout intercalado que admite composición (#193)
  • Minimiza las nuevas medidas en Compose (#210)

Versión 1.0.0-alpha05

15 de marzo de 2021

Lanzamiento de androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha05.

  • Incluye una corrección para el motor de optimización. (b/182657720)
  • Agrega un parámetro optimizationLevel al elemento que admite composición ConstraintLayout.

Versión 1.0.0-alpha04

11 de marzo de 2021

Lanzamiento de androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha04.

Actualiza para usar el motor constraintlayout-core más reciente.

Versión 1.0.0-alpha03

24 de febrero de 2021

Lanzamiento de androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha03.

Actualiza la versión para Jetpack Compose versión beta01.

Versión 1.0.0-alpha02

10 de febrero de 2021

Lanzamiento de androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha02.

Actualiza la versión para Jetpack Compose versión alpha12

Versión 1.0.0-alpha01

2 de febrero de 2021

Lanzamiento de androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01.

Primera versión de la biblioteca, que proporciona DSL integradas y externas para expresar restricciones.

Versión 2.1

ConstraintLayout 2.1.0 ofrece funciones más enriquecidas en MotionLayout y nuevos ayudantes (Carousel, etc.).

Versión 2.1.0-beta02

4 de mayo de 2021

Lanzamiento de androidx.constraintlayout:constraintlayout:2.1.0-beta02.

Algunas funciones nuevas en MotionLayout:

  • Se realizaron mejoras en OnSwipe como en los resortes (rigidez, amortiguación, aglomeración, etc) y la función de no completar nunca.
  • Se agregó la función jumpToState.
  • Se agregó compatibilidad con el modo ViewTransition downUp, en el que cuando se toca Down se reproduce a 100 y cuando se toca Up se revierte a 0.

Se implementaron varias correcciones, en particular, las siguientes:

  • Se corrigió el problema en MotionLayout con el desplazamiento vertical. (#173)
  • Se implementaron mejoras en rendimiento en MotionLayout anidado. (#189)
  • Se implementó la transición rápida con NestedScrollView en MotionLayout. (#189)
  • Se quitó ConstraintSet de MotionLayout. (#189)
  • Se agregó compatibilidad con DownUp ViewTransitions en MotionLayout. (#190)
  • Se corrigió un problema en ImageFilter al volver a usar elementos de diseño. (#192)
  • Se agregó compatibilidad de elasticidad en MotionLayout. (#199)
  • Se mejoró el rendimiento en CircularFlow. (#200)
  • Se realizaron correcciones en las restricciones derivadas y en anulación de restricciones. (#212)

Versión 2.1.0-beta01

11 de marzo de 2021

Lanzamiento de androidx.constraintlayout:constraintlayout:2.1.0-beta01.

ConstraintLayout

android:layout_width y android:layout_height vuelven a no ser opcionales, debido a problemas de compatibilidad.

MotionLayout

  • Compatibilidad programática con la función de insertar y quitar onSwipe y onClick en Transiciones
  • Compatibilidad experimental para transiciones mediante rotación de pantalla
  • Compatibilidad con argumento de duración para transiciones
  • Mejor compatibilidad con customAttributes que son booleanos o referencias

Ayudantes

  • Se agregó una forma de animar o saltar directamente a un elemento determinado de un carrusel.
  • Se agregó un asistente de CircularFlow.

Para obtener más información sobre esta versión, consulta este artículo y los errores corregidos.

Versión 2.1.0-alpha2

17 de diciembre de 2020

Lanzamiento de androidx.constraintlayout:constraintlayout:2.1.0-alpha2.

Esta segunda versión alfa agrega varias funciones nuevas:

ConstraintLayout

  • android:layout_width y android:layout_height ahora son opcionales, con wrap_content como comportamiento predeterminado
  • Nuevos atributos layout_constraintWidth y layout_constraintHeight para expresar restricciones de dimensión
  • Admite márgenes negativos para restricciones
  • Admite el modelo de referencia para las restricciones inferiores y superiores
  • Admite restricciones de margen de modelo de referencia
  • Los objetos SharedValues permiten insertar valores externos en ConstraintLayout

MotionLayout

  • Compatibilidad con interpoladores sobrepasados (anticipar, sobrepasarse)
  • Compatibilidad mejorada con MotionHelper
  • Se agregó una actualización animada de ConstraintSet a MotionLayout updateStateAnimator(id,cset,duration);
  • Objeto ViewTransition basado en valores compartidos
  • scheduleTransitonTo permite colocar una transición para que se ejecute al finalizar la transición actual

Ayudantes

  • Carousel ahora admite un modo infinito (envoltorio)
  • ReactiveGuide: Una pauta que se posiciona automáticamente cuando cambia un objeto SharedValue
  • MotionEffect: Inyecta objetos Keyframe en vistas a las que se hace referencia en una dirección determinada
  • MotionLabel: Un elemento View para animar texto de una sola línea

Para obtener información adicional sobre esta versión, ingresa aquí.

Versión 2.1.0-alpha1

19 de noviembre de 2020

Lanzamiento de androidx.constraintlayout:constraintlayout:2.1.0-alpha1.

Primer lanzamiento alfa de la versión 2.1. Novedades:

  • Se agregó compatibilidad con el ayudante de movimiento del carrusel para compilar vistas de carrusel personalizadas.
  • La compatibilidad de escenas de MotionLayout incluye anulaciones de restricciones.
  • MotionLayout agrega mayor compatibilidad para casos de rotación (entrada y salida).
  • MotionLayout agrega ViewTransitions, lo que ofrece transiciones de vista única para la mutación de constraintsets.

Obtén información adicional sobre esta versión aquí.

Versión 2.0

ConstraintLayout 2.0 agrega funciones nuevas para diseños (diseños virtuales, entre otros) y una nueva clase para simplificar la animación de vistas: MotionLayout.

Versión 2.0.4

29 de octubre de 2020

Lanzamiento de androidx.constraintlayout:constraintlayout:2.0.4.

Correcciones de errores

Esta actualización corrige una NPE potencial que puede ocurrir cuando se quita una vista secundaria durante el tiempo de ejecución. Se recomienda actualizar a esta versión.

Consulta la lista de problemas cerrados aquí.

Versión 2.0.3

27 de octubre de 2020

Lanzamiento de androidx.constraintlayout:constraintlayout:2.0.3.

Correcciones de errores

Esta versión corrige algunos problemas. Se recomienda actualizar a esta versión.

  • Manejo de inserciones de ventanas
  • Manejo de la proporción de dimensiones en algunas situaciones
  • Fallas con algunos diseños de derecha a izquierda

Consulta la lista de problemas cerrados aquí.

Versión 2.0.2

6 de octubre de 2020

Lanzamiento de androidx.constraintlayout:constraintlayout:2.0.2.

Correcciones de errores

En esta versión, se mejoran las presentaciones y se solucionan algunos problemas. Se recomienda actualizar a esta versión.

  • En algunos casos, el control de la visibilidad de GONE en ConstraintLayout era incorrecto
  • En algunos casos, el control de cadenas empaquetadas en ConstraintLayout era incorrecto
  • Se corrigió la excepción de aumento del nivel de API 15 para el asistente de diseño virtual de flujo
  • boundsBoundsTo estaba dañado en MotionLayout
  • En algunos casos, jump to end en MotionLayout estaba dañado (transiciones encadenadas)

Consulta la lista de problemas cerrados aquí.

Versión 2.0.1

25 de agosto de 2020

Lanzamiento de androidx.constraintlayout:constraintlayout:2.0.1.

Esta es una actualización menor que permite el uso de MotionEditor en Android Studio.

Versión 2.0.0

21 de agosto de 2020

Lanzamiento de androidx.constraintlayout:constraintlayout:2.0.0.

Correcciones de errores

Consulta la lista de problemas cerrados aquí.

Las correcciones destacadas son las siguientes:

  • Demoras en la transición de MotionLayout y correcciones en TransitionListener
  • Correcciones de barreras y flujos de ConstraintLayout

Versión 2.0.0-rc1

29 de julio de 2020

Lanzamiento de androidx.constraintlayout:constraintlayout:2.0.0-rc1.

Correcciones de errores

Consulta la lista de problemas cerrados aquí.

Las correcciones destacadas son las siguientes:

  • Correcciones de flujo
  • Correcciones de RecyclerView (se recomienda actualizar a recyclerview 1.2.0 alpha 5 o versiones posteriores)
  • Correcciones de MotionLayout TransitionListener
  • Corrección de fugas de memoria de MotionLayout

Versión 2.0.0-beta8

7 de julio de 2020

Se lanzó androidx.constraintlayout:constraintlayout:2.0.0-beta8.

Correcciones de errores

Consulta la lista de problemas cerrados aquí.

Las correcciones destacadas son las siguientes:

  • Comportamiento de marcadores de posición
  • Visibilidad de capas
  • Correcciones de barreras de flujo
  • Correcciones de TransitionListener

Versión 2.0.0-beta7

12 de junio de 2020

Lanzamiento de androidx.constraintlayout:constraintlayout:2.0.0-beta7.

Correcciones de errores

Consulta la lista de problemas cerrados aquí.

Las correcciones destacadas son las siguientes:

  • Problemas con vistas de desplazamiento anidadas en MotionLayout
  • Problemas con objetos de escucha de transición con MotionLayout
  • Fuga de memoria en MotionLayout
  • Problemas con RecyclerView
  • Visibilidad de un grupo
  • Problemas de relleno

Versión 2.0.0-beta6

13 de mayo de 2020

Lanzamiento de androidx.constraintlayout:constraintlayout:2.0.0-beta6.

Correcciones de errores

Consulta la lista de problemas cerrados aquí. Las correcciones destacadas son el manejo de la visibilidad del grupo y los problemas de restricciones derivados en MotionLayout.

Versión 2.0.0-beta5

7 de mayo de 2020

Lanzamiento de androidx.constraintlayout:constraintlayout:2.0.0-beta5.

Correcciones de errores

Consulta la lista de problemas cerrados aquí.

Versión 2.0.0-beta4

16 de diciembre de 2019

Lanzamiento de androidx.constraintlayout:constraintlayout:2.0.0-beta4.

Nuevas funciones

MotionLayout

Atributos nuevos en la transición:

  • layoutDuringTransition: Te permite configurar cómo debe reaccionar MotionLayout a las llamadas secundarias de requestLayouts durante una transición. Los valores posibles son {ignoreRequest, honorRequest}.
  • pathMotionArc: La ruta que toman los elementos en movimiento usará un arco. Los valores posibles son {startVertical | startHorizontal | girar | ninguno}.

Ahora es posible definir una transición predeterminada omitiendo el inicio y el final de ConstraintSets. Se usará esa transición predeterminada si no se encuentra ninguna otra existente que coincida con los estados de inicio y fin actuales.

Correcciones de errores

Consulta la lista de problemas cerrados aquí.