Constraintlayout

Defina a posição e o tamanho dos widgets de maneira flexível com posicionamento relativo.

Esta tabela lista todos os artefatos no grupo androidx.constraintlayout.

Artefato Versão estável atual Próximo candidato a lançamento Versão Beta Versão Alfa
constraintlayout 2.1.0 - - -
constraintlayout-compose - - 1.0.0-beta02 -
Última atualização desta biblioteca: 22 de julho de 2021

Declarar dependências

Para adicionar uma dependência a ConstraintLayout, adicione o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para ver mais informações.

Adicione as dependências dos artefatos necessários no arquivo build.gradle para seu app ou módulo:

Groovy

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

Kotlin

dependencies {
    implementation("androidx.constraintlayout:constraintlayout:2.1.0")
}

Para ver mais informações sobre dependências, consulte Adicionar dependências de build.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas existentes nesta biblioteca antes de criar um novo. Adicione seu voto a um problema existente clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

ConstraintLayout-compose 1.0

O ConstraintLayout-compose 1.0 oferece funcionalidades de ConstraintLayout no Jetpack Compose.

Versão 1.0.0-beta02

30 de julho de 2021

Lançamento de androidx.constraintlayout:constraintlayout-compose:1.0.0-beta02.

Esta é a segunda versão Beta. Ela é considerada completa e oferece o ConstraintLayout e o MotionLayout para o Compose.

Para saber mais, consulte o artigo do GitHub Novidades na versão 1.0 do Compose (link em inglês).

Versão 1.0.0-beta01

22 de julho de 2021

Lançamento de androidx.constraintlayout:constraintlayout-compose:1.0.0-beta01.

Esta é a primeira versão Beta. Ela é considerada completa e oferece o ConstraintLayout e o MotionLayout para o Compose.

Para saber mais, consulte o artigo do GitHub Novidades na versão 1.0 do Compose (link em inglês).

Versão 1.0.0-alpha07

18 de maio de 2021

Lançamento de androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha07.

  • Atualizada para ser compatível com a versão 1.0.0-beta07 do Compose.

Versão 1.0.0-alpha06

4 de maio de 2021

Lançamento de androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha06.

  • Otimização do Compose: o Constraintlayout in-line pode ser composto (#193)
  • As medições que são feitas novamente foram minimizadas no Compose (#210)

Versão 1.0.0-alpha05

15 de março de 2021

Lançamento de androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha05.

  • Inclui uma correção para o mecanismo de otimização (b/182657720).
  • Um parâmetro optimizationLevel foi adicionado ao ConstraintLayout que pode ser composto.

Versão 1.0.0-alpha04

11 de março de 2021

Lançamento de androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha04.

Atualize para usar o mecanismo constraintlayout-core mais recente.

Versão 1.0.0-alpha03

24 de fevereiro de 2021

Lançamento de androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha03.

Lançamento da atualização da versão do Jetpack Compose beta01.

Versão 1.0.0-alpha02

10 de fevereiro de 2021

Lançamento de androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha02.

Lançamento da atualização da versão do Jetpack Compose alpha12.

Versão 1.0.0-alpha01

2 de fevereiro de 2021

Lançamento de androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01.

Primeiro lançamento da biblioteca, fornecendo DSLs externas e in-line para expressar restrições.

Versão 2.1

O ConstraintLayout 2.1.0 oferece recursos mais completos no MotionLayout e novos auxiliares (Carousel etc.)

Versão 2.1.0

30 de julho de 2021

Lançamento de androidx.constraintlayout:constraintlayout:2.1.0.

Esta é a versão final para 2.1.0.

Para saber mais, consulte o artigo do GitHub Novidades na versão 2.1 (link em inglês).

Versão 2.1.0-rc01

22 de julho de 2021

Lançamento de androidx.constraintlayout:constraintlayout:2.1.0-rc01.

Esse é o candidato a lançamento para a versão 2.1.0 e oferece pequenas melhorias e correções desde a última versão Beta. Para saber mais, consulte o artigo do GitHub Novidades na versão 2.1 (link em inglês).

Versão 2.1.0-beta02

4 de maio de 2021

Lançamento de androidx.constraintlayout:constraintlayout:2.1.0-beta02.

Alguns novos recursos no MotionLayout:

  • Melhorias do método OnSwipe, incluindo de mola (rigidez, amortecimento, massa, etc.) e nunca concluídas.
  • Função jumpToState.
  • Modo ViewTransition downUp em que tocar em "down" vai até 100 e tocar em "up" para 0.

Várias correções, especialmente:

  • Correção de um problema no MotionLayout com rolagem vertical (#173)
  • Melhorias de desempenho no MotionLayout aninhado (#189)
  • Transição rápida com NestedScrollView no MotionLayout (#189)
  • ConstraintSet excluído do MotionLayout (#189)
  • Suporte para ViewTransitions downUp no MotionLayout (#190)
  • Correção no ImageFilter ao reutilizar drawables (#192)
  • Suporte para mola adicionado ao MotionLayout (#199)
  • Melhoria de desempenho no CircularFlow (#200)
  • Correções nas restrições derivadas / substituição de restrição (#212)

Versão 2.1.0-beta01

11 de março de 2021

Lançamento de androidx.constraintlayout:constraintlayout:2.1.0-beta01.

ConstraintLayout

android:layout_width e android:layout_height voltaram a ser obrigatórios devido a problemas de compatibilidade.

MotionLayout

  • Suporte programático para inserir e remover onSwipe e onClick nas transições.
  • Suporte experimental para transições com rotação de tela
  • Suporte a argumentos de duração para transições
  • Melhor compatibilidade com customAttributes booleanos ou referências.

Auxiliares

  • Uma forma de animar ou pular diretamente para um determinado item de um carrossel foi adicionada.
  • O novo auxiliar CircularFlow foi adicionado.

Veja mais informações sobre esta versão, aqui e bugs resolvidos (links em inglês).

Versão 2.1.0-alpha2

17 de dezembro de 2020

Lançamento do androidx.constraintlayout:constraintlayout:2.1.0-alpha2.

Este segundo alfa adiciona vários recursos novos:

ConstraintLayout

  • android:layout_width e android:layout_height agora são opcionais, com wrap_content como comportamento padrão.
  • Novos atributos layout_constraintWidth e layout_constraintHeight para expressar restrições de dimensão.
  • Suporte a margens negativas para restrições.
  • Suporte a valores de referência das restrições superior e inferior.
  • Suporte a restrições de margem do valor de referência.
  • SharedValues permite injetar valores externos no ConstraintLayout.

MotionLayout

  • Suporte a interpoladores de ultrapassagem (antecipar, ultrapassar).
  • Compatibilidade melhorada com MotionHelper.
  • Adição de atualização animada de ConstraintSet ao MotionLayout updateStateAnimate(id,cset,duration);.
  • Valor compartilhado baseado em ViewTransition.
  • scheduleTransitonTo permite que você faça uma transição para execução na conclusão da transição atual.

Auxiliares

  • O Carousel agora é compatível com o modo infinito (circular).
  • ReactiveGuide: uma diretriz que se posiciona automaticamente quando um SharedValue muda.
  • MotionEffect: injeta Keyframes em visualizações referenciadas se movendo em determinada direção.
  • MotionLabel: visualização para animar texto de linha única.

Veja mais informações sobre essa versão aqui.

Versão 2.1.0-alpha1

19 de novembro de 2020

Lançamento do androidx.constraintlayout:constraintlayout:2.1.0-alpha1.

Primeiro Alfa da versão 2.1. Apresenta suporte para:

  • o auxiliar de movimento Carousel para criar visualizações de carrossel personalizadas;
  • as cenas do MotionLayout compatíveis com substituição de inclusões e restrições;
  • MotionLayout adiciona compatibilidade maior com rotação (entrada e saída);
  • MotionLayout adiciona ViewTransitions, permitindo transições de visualização única para mutação de conjuntos de restrições.

Veja mais informações sobre essa versão aqui.

Versão 2.0

O ConstraintLayout 2.0 adiciona novos recursos a layouts, como layouts virtuais, e uma nova classe para simplificar a animação de visualizações, a MotionLayout.

Versão 2.0.4

29 de outubro de 2020

Lançamento do androidx.constraintlayout:constraintlayout:2.0.4.

Correções de bugs

Esta versão conta com correções de um possível NPE que pode acontecer ao remover uma visualização filha no tempo de execução. Recomendamos atualizar para esta versão.

Veja aqui a lista de problemas resolvidos.

Versão 2.0.3

27 de outubro de 2020

Lançamento do androidx.constraintlayout:constraintlayout:2.0.3.

Correções de bugs

Esta versão corrige alguns problemas. Recomendamos atualizar para esta versão.

  • Processamento de inserções do Windows
  • Processamento da proporção da dimensão em algumas situações
  • Falha com alguns layouts RTL

Veja aqui a lista de problemas resolvidos.

Versão 2.0.2

6 de outubro de 2020

Lançamento de androidx.constraintlayout:constraintlayout:2.0.2.

Correções de bugs

Esta versão melhora o desempenho e corrige alguns problemas. Recomendamos atualizar para esta versão.

  • O processamento da visibilidade da visualização GONE em ConstraintLayout estava incorreto em algumas situações.
  • O processamento de cadeias empacotadas no ConstraintLayout estava incorreto em algumas situações.
  • Correção da exceção de inflação na API 15 para o auxiliar de layout virtual do Flow.
  • limitsBoundsTo estava corrompido no MotionLayout.
  • jump to end estava corrompido no MotionLayout em algumas situações (transições de encadeamento).

Veja aqui a lista de problemas resolvidos.

Versão 2.0.1

25 de agosto de 2020

Lançamento de androidx.constraintlayout:constraintlayout:2.0.1.

Esta é uma atualização pequena que permite o uso do MotionEditor no Android Studio.

Versão 2.0.0

21 de agosto de 2020

Lançamento do androidx.constraintlayout:constraintlayout:2.0.0.

Correções de bugs

Veja aqui a lista de problemas resolvidos.

As correções importantes são as seguintes:

  • Atrasos na MotionLayout Transition e correções do TransitionListener
  • Correções do fluxo e da barreira ConstraintLayout

Versão 2.0.0-rc1

29 de julho de 2020

Lançamento do androidx.constraintlayout:constraintlayout:2.0.0-rc1.

Correções de bugs

Veja aqui a lista de problemas resolvidos.

As correções importantes são as seguintes:

  • Correções de fluxo
  • Correções do RecyclerView (recomendamos atualizar o recyclerview para 1.2.0 alpha 5 ou mais recente)
  • Correções do MotionLayout TransitionListener
  • Correção do vazamento de memória do MotionLayout

Versão 2.0.0-beta8

7 de julho de 2020

Lançamento do androidx.constraintlayout:constraintlayout:2.0.0-beta8.

Correções de bugs

Veja aqui a lista de problemas resolvidos.

As correções importantes são as seguintes:

  • Comportamento do marcador
  • Visibilidade da camada
  • Fluxo, correções de barreira
  • Correções de TransitionListener

Versão 2.0.0-beta7

12 de junho de 2020

Lançamento de androidx.constraintlayout:constraintlayout:2.0.0-beta7.

Correções de bugs

Veja aqui a lista de problemas resolvidos.

As correções importantes são as seguintes:

  • Problemas de visualização de rolagem aninhada em MotionLayout
  • Problemas de listener de transição com MotionLayout
  • Vazamento de memória em MotionLayout
  • Problemas de RecyclerView
  • Visibilidade do grupo
  • Problemas de padding

Versão 2.0.0-beta6

13 de maio de 2020

Lançamento de androidx.constraintlayout:constraintlayout:2.0.0-beta6.

Correções de bugs

Veja aqui a lista de problemas resolvidos. As principais correções são problemas de processamento de visibilidade de grupo e restrições derivadas no MotionLayout.

Versão 2.0.0-beta5

7 de maio de 2020

Lançamento de androidx.constraintlayout:constraintlayout:2.0.0-beta5.

Correções de bugs

Veja aqui a lista de problemas resolvidos

Versão 2.0.0-beta4

16 de dezembro de 2019

Lançamento de androidx.constraintlayout:constraintlayout:2.0.0-beta4.

Novos recursos

MotionLayout

Novos atributos em Transition:

  • layoutDuringTransition: permite que você configure como a classe MotionLayout reagirá às chamadas de requestLayouts de filhos durante uma transição. Os valores possíveis são {ignoreRequest, honorRequest}
  • pathMotionArc: o caminho percorrido pelos elementos em movimento usará um arco. Os valores possíveis são {startVertical | startHorizontal | flip | none}

Agora é possível definir uma transição padrão omitindo os ConstraintSets de início e fim. Essa transição padrão será usada se não for encontrada nenhuma outra transição correspondente aos estados de início e fim.

Correções de bugs

Veja aqui a lista de problemas resolvidos