O widget Stack no Flutter é usado para empilhar widgets uns sobre os outros em uma posição específica da tela, semelhante à pilha de cartas, onde a última carta adicionada fica no topo.


Uso Básico do Widget Stack:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Stack(
          children: <Widget>[
            Container(
              color: Colors.blue,
              width: 300,
              height: 300,
            ),
            Positioned(
              top: 50,
              left: 50,
              child: Container(
                color: Colors.red,
                width: 200,
                height: 200,
              ),
            ),
            Positioned(
              bottom: 50,
              right: 50,
              child: Container(
                color: Colors.green,
                width: 150,
                height: 150,
              ),
            ),
          ],
        ),
      ),
    );
  }
}


Explicação do Exemplo:

  • O Stack é um widget que permite adicionar vários filhos (widgets) e posicioná-los em relação uns aos outros.

  • No exemplo acima, temos três Container widgets envolvidos por um Stack.

  • O Container (azul) é o primeiro do Stack.

  • Os outros dois Container widgets são posicionados usando o widget Positioned, que permite definir a posição do widget em relação ao Stack.


Características principais do Widget Stack:

  1. Posicionamento Flexível:

    Permite posicionar widgets de forma flexível usando o widget Positioned.

  2. Sobreposição de Widgets:

    Possibilita a sobreposição de widgets, onde o último widget adicionado fica no topo.

  3. Controle de Posição:

    Fornece controle preciso sobre a posição e layout dos widgets empilhados.


O Stack é útil para criar layouts complexos e personalizados, onde é necessário posicionar elementos de forma específica na tela. Ele permite criar interfaces de usuário criativas e dinâmicas no Flutter, empilhando widgets em diferentes camadas visuais.