Layouts
O Flutter oferece uma variedade de widgets de layout que permitem organizar e posicionar os elementos da interface do usuário de maneira eficaz. Aqui estão alguns dos widgets de layout mais comuns e úteis disponíveis no Flutter:
Widgets de Layout Simples:
Container:
- Um contêiner retangular que pode conter outros widgets. Ele pode ser estilizado com margens, preenchimento, bordas e muito mais.
Container( margin: EdgeInsets.all(16.0), padding: EdgeInsets.all(16.0), decoration: BoxDecoration( color: Colors.blue, borderRadius: BorderRadius.circular(8.0), ), child: Text('Conteúdo do Contêiner'), )
Row e Column:
- Organizam widgets horizontalmente (Row) ou verticalmente (Column). Você pode definir alinhamentos, espaçamentos e distribuição de espaço entre os widgets filhos.
Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: <Widget>[ Text('Widget 1'), Text('Widget 2'), ], ) Column( crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[ Text('Linha 1'), Text('Linha 2'), ], )
Widgets de Layout Flexível:
Expanded:
- Um widget que preenche o espaço disponível em um Row, Column ou Flex.
Row( children: <Widget>[ Expanded(child: Text('Widget 1')), Expanded(child: Text('Widget 2')), ], )
Flexible:
- Um widget que pode ser flexível em um Flex. Permite especificar uma proporção de espaço para cada widget filho.
Flex( direction: Axis.horizontal, children: <Widget>[ Flexible( flex: 2, child: Text('Widget 1'), ), Flexible( flex: 1, child: Text('Widget 2'), ), ], )
Scrollable Layouts:
ListView:
- Um widget que exibe uma lista de widgets de maneira rolável.
ListView( children: <Widget>[ ListTile(title: Text('Item 1')), ListTile(title: Text('Item 2')), // ... ], )
GridView:
- Um widget que exibe widgets em uma grade de maneira rolável.
GridView.count( crossAxisCount: 2, children: <Widget>[ GridTile(child: Text('Item 1')), GridTile(child: Text('Item 2')), // ... ], )
Widgets de Layout Avançados:
Stack:
- Empilha widgets uns sobre os outros. Útil para sobreposição de elementos na tela.
Stack( children: <Widget>[ Positioned( top: 10.0, left: 10.0, child: Text('Posicionado no Topo à Esquerda'), ), Positioned( bottom: 10.0, right: 10.0, child: Text('Posicionado na Parte Inferior à Direita'), ), ], )
Wrap:
- Organiza widgets em várias linhas ou colunas, dependendo do espaço disponível.
Wrap( spacing: 8.0, runSpacing: 4.0, children: <Widget>[ Chip(label: Text('Tag 1')), Chip(label: Text('Tag 2')), // ... ], )
Esses são apenas alguns exemplos de como os widgets de layout podem ser usados no Flutter. A combinação e personalização destes widgets permite criar interfaces do usuário complexas e responsivas. Ao experimentar e combinar esses widgets, você pode criar layouts personalizados que atendam às necessidades específicas do seu aplicativo.