FlexBox é um contêiner que organiza itens em uma única direção. Ele pode
redimensionar, unir, alinhar e distribuir o espaço entre os itens para preencher o espaço
disponível da melhor forma. É um layout útil para itens de tamanhos diferentes e para redimensionar
itens quando o espaço disponível muda.
Com o FlexBox, você pode:
- Controlar como os itens aumentam e diminuem para preencher o espaço disponível
- Agrupar itens em novas linhas ou colunas quando não houver espaço suficiente para eles
- Distribua o espaço extra entre os itens usando predefinições convenientes
Quando usar o FlexBox
FlexBox geralmente é usado para mostrar um pequeno número de itens dentro de um
layout de tela geral. Para um layout de tela geral,
Grid geralmente é uma opção melhor. O FlexBox não oferece suporte ao carregamento lento de
itens. Para mostrar um grande número de itens, use listas e grades lentas. Se você
precisar unir itens, use FlexBox em vez de FlowRow e FlowColumn.
Terminologia e conceitos
O FlexBox organiza os itens em linhas horizontais ou verticais. A
direção dessas linhas estabelece o eixo principal. A 90 graus do eixo principal,
está o eixo transversal. O comprimento do FlexBox ao longo do eixo principal é
conhecido como tamanho principal. O comprimento do eixo transversal correspondente é conhecido como
tamanho transversal. Esses tamanhos e eixos formam a base do comportamento do FlexBox.
FlexBox é Row.
FlexBox é Column.Aplicar propriedades
É possível aplicar as propriedades FlexBox de duas maneiras:
- Para o contêiner
FlexBoxusandoFlexBox(config) - Para um item dentro do
FlexBoxusandoModifier.flex
Propriedades do contêiner ( |
Propriedades do item ( |
|---|---|
Consulte Definir o comportamento do contêiner para mais informações sobre essas propriedades. |
Consulte Definir o comportamento do item para mais informações sobre essas propriedades. |
Entender o algoritmo de layout FlexBox
Um dos recursos mais avançados do FlexBox é a capacidade de redimensionar os filhos
para se ajustarem melhor ao espaço disponível. Entender como o FlexBox faz isso pode
ajudar você a definir as propriedades de FlexBox para otimizar a interface para todos os tamanhos possíveis.
O algoritmo de layout do FlexBox funciona da seguinte maneira:
Calcular o tamanho base do elemento filho: use o valor
basisdo elemento filho para calcular o tamanho inicial dele ao longo do eixo principal antes que qualquer espaço extra seja distribuído.Classificar os filhos: classifique os filhos pelos valores de
order, se houver.Criar linhas: para cada filho, verifique se o tamanho inicial mais
gapcabem no espaço restante na linha atual. Se sim, coloque essa criança na fila. Caso contrário, coloque-o em uma nova linha se o encapsulamento estiver ativado ou coloque o item na linha atual, onde ele vai transbordar (será parcialmente obscurecido pela borda do contêiner).Alinhar ou redimensionar itens no eixo principal: para cada linha, distribua o espaço extra para ou entre os itens, redimensionando ou alinhando-os.
Alinhar ou redimensionar itens no eixo transversal: para cada linha, distribua o espaço extra para ou entre itens e linhas esticando ou alinhando-os.
Agora que você conhece os conceitos do FlexBox, consulte Primeiros passos para
criar um FlexBox básico.