Concrete Logo
Hamburger button

O que há de novo no Constraint Layout 1.1.X

  • Blog
  • 11 de Outubro de 2017
Share

Algumas semanas atrás, em uma sessão no Google I/O, foi anunciada uma nova versão do ConstraintLayout. Entretanto, não recebemos tanta informação sobre o que está dentro do pacote, foi só uma publicação de Blog muito superficial… Sem documentos nem exemplos. Então busquei um pouco, decompileu algumas aulas e fiz um mergulho neste lançamento para verificar o que há de novo e como funciona. Bora lá?

Dimensões percentuais

O comportamento padrão de widgets de largura 0dp (ou match_constraint) é espalhado (configurável por meio da propriedade layout_constraintWidth_default). Em ConstraintLayout 1.0.x nós tivemos a opção de mudá-lo para embrulhar, e em 1.1.x temos um novo valor, porcentagem, que nos permite configurar um widget para levar algum percentual do espaço disponível.

Barreiras

A partir deste novo widget temos um exemplo de ConstraintLayout.com. As barreiras evitarão um ou mais widgets para ignorar a Barreira. Quando isso ocorre, a Barreira se moverá, evitando que o (s) widget (s) seja colocado acima dela.

No exemplo abaixo, a propriedade final do texto1 e do texto2 não pode ignorar a Barreira. Quando isso ocorre, a Barreira se moverá para a direita (ou para a esquerda, se estiver em um layout RTL). Isso é particularmente pressão ao lidar com diferentes tamanhos de widgets, dependendo de alguma configuração ou internacionalização.

Grupo

Grupos, como as Diretrizes, são widgets com tamanho 0. Mas o Group ajuda a aplicar alguma ação a um conjunto de widgets. O caso mais comum é controlar a visibilidade de uma coleção de widgets. Ao lidar com esse cenário, a solução mais comum era manter você mesmo uma lista ou conjunto de visualizações dentro da atividade ou Fragmento, ou mesmo adicionar um ViewGroup e colocar todas as visualizações dentro dele, controlando a visibilidade do contêiner. Agora, você só precisa adicionar seus IDs ao Grupo e o próprio vai propagar as ações para todas as visualizações conectadas.

Nesse caso, se chamarmos

text1 e text2 receberão a visibilidade GONE.

Marcadores de posição

Nossa, essa é grande. Pense em Placeholder como um modelo para ConstraintLayout. Para mostrar isso de forma prática, vamos dar o exemplo da conversa de E / S. Vamos criar 2 layouts diferentes, um para cada configuração (padrão e paisagem). Mas em vez de usar os widgets do nosso layout (ImageViews, TextViews, e assim por diante), usaremos marcadores de posição.

E

Então, no próprio layout, aquele que vamos usar em nosso Fragmento ou Atividade, nós apenas adicionamos os widgets, sem qualquer informação de posicionamento. E então incluímos o modelo no layout usando a tag de inclusão.

Outro excelente recurso do Placeholder é mudar seu id referenciado em tempo de execução, permitindo que você crie layouts dinâmicos (e até animações legais) com muito menos esforço do que usando outras formas (como Scenes).

Então é isso! Pelo menos o que encontrei sozinho. Se você encontrar alguém novo que não está presente aqui, ou tenha um link com alguns documentos oficiais, ou uma explicação mais ampla, por favor, coloque aqui nos comentários!

Compartilhe se isso foi útil para você 🙂

É desenvolvedor Android e quer trabalhar em um time ágil de verdade e multidisciplinar? Clique aqui.