Stack
O widget Stack
no Flutter é usado para empilhar widgets uns sobre os outros. Ele posiciona widgets filhos em camadas, permitindo que você crie interfaces de usuário complexas e personalizadas. Os widgets dentro de um Stack
podem ser posicionados usando a propriedade Positioned
, que controla a posição e o tamanho do widget filho na pilha.
Aqui está um exemplo básico de como usar um Stack
:
Stack(
children: <Widget>[
Positioned(
left: 10,
top: 10,
child: Container(
width: 100,
height: 100,
color: Colors.blue,
),
),
Positioned(
right: 10,
top: 10,
child: Container(
width: 50,
height: 50,
color: Colors.red,
),
),
Positioned(
bottom: 10,
left: 10,
child: Container(
width: 150,
height: 150,
color: Colors.green,
),
),
],
)
Neste exemplo, há três Containers
posicionados em diferentes partes do Stack
. O Positioned
controla a posição dos filhos do Stack
em relação aos cantos superior esquerdo, superior direito ou inferior esquerdo.
Alinhamento e Dimensionamento:
Além do Positioned
, você também pode usar a propriedade alignment
do Stack
para controlar o alinhamento dos filhos dentro da pilha. Por exemplo:
Stack(
alignment: Alignment.center,
children: <Widget>[
// Widgets filhos aqui
],
)
Neste exemplo, os filhos do Stack
serão centralizados na tela. Você pode usar qualquer valor de Alignment
para controlar o alinhamento.
Stack com Positioned.fill:
Você pode usar Positioned.fill
para fazer um widget filho ocupar todo o espaço disponível na pilha.
Stack(
children: <Widget>[
Positioned.fill(
child: Container(
color: Colors.blue,
),
),
// Outros widgets posicionados ou filhos aqui
],
)
Neste exemplo, o Container
será esticado para ocupar todo o espaço disponível no Stack
.
O widget Stack
é muito útil para criar layouts complexos, especialmente quando você precisa sobrepor ou posicionar widgets de forma específica. Experimente combinações de Positioned
e outras propriedades para criar layouts personalizados em seu aplicativo Flutter.