Menu
CoddyTech

Sovrapporre i widget in alto

Fa parte della sezione Layout adattabili del percorso Flutter di Coddy. Lezione 10 di 30.

Una Column dispone i suoi elementi uno sotto l'altro, mentre una Row li dispone affiancati. Una Stack li dispone uno sopra l'altro, come fogli di carta su una scrivania:

Stack(
  children: [
    Container(height: 200, color: Colors.grey),
    const Text('On top'),
  ],
)

Il primo elemento viene disegnato per primo, in basso. Ogni elemento successivo viene disegnato sopra quelli precedenti. Quindi la foto viene per prima e l'etichetta che vi si trova sopra viene per ultima.

Gli elementi iniziano dall'angolo in alto a sinistra della Stack, e la Stack è grande quanto il suo elemento più grande. È così che un badge, un'etichetta o un pulsante di riproduzione si sovrappone a un'immagine.

challenge icon

Sfida

Facile

Il badge SALE si trova sotto la foto. Mettilo sopra la foto: trasforma la Column che contiene entrambi in una Stack, con il badge disegnato in primo piano.

Provalo tu

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(title: const Text('Shop')),
        body: Padding(
          padding: const EdgeInsets.all(16),
          child: Column(
            children: [
              Column(
                children: [
                  Container(
                    height: 200,
                    color: Colors.blueGrey.shade100,
                    child: const Center(child: Icon(Icons.image, size: 64)),
                  ),
                  Container(
                    padding: const EdgeInsets.all(8),
                    color: Colors.red,
                    child: const Text('SALE', style: TextStyle(color: Colors.white)),
                  ),
                ],
              ),
              const SizedBox(height: 12),
              const Text('Running shoes', style: TextStyle(fontSize: 20)),
            ],
          ),
        ),
      ),
    );
  }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Layout adattabili

Esercitati da solo: Compilatore Flutter online