Un cassetto laterale
Fa parte della sezione Elenchi e schermate del percorso Flutter di Coddy. Lezione 25 di 33.
Un Drawer è un pannello che scorre dal lato, pensato per le voci dell’app che non trovano posto nelle schede. Assegnalo a Scaffold:
Scaffold(
appBar: AppBar(title: Text(folder)),
drawer: Drawer(
child: ListView(
children: [
const DrawerHeader(child: Text('Mail')),
ListTile(
title: const Text('Sent'),
onTap: () {
setState(() {
folder = 'Sent';
});
Navigator.pop(context);
},
),
],
),
),
)Con un drawer, la barra dell’app mostra all’inizio un pulsante del menu con tre linee. Toccandolo o scorrendo dal bordo, si apre il drawer.
Il drawer rimane aperto finché qualcosa non lo chiude. Un drawer aperto è come una schermata sopra la pagina, quindi Navigator.pop(context) lo chiude. Chiamalo dopo aver toccato una riga, altrimenti il drawer copre la pagina che hai selezionato.
Un DrawerHeader è l’ampia area in alto, pensata per il nome dell’app o per l’account con cui hai effettuato l’accesso.
Sfida
FacileApri il cassetto con il pulsante del menu: contiene solo Inbox. Aggiungi altre due righe come quella di Inbox, impostando ciascuna folder e chiudendo il cassetto:
Sent, conIcons.sendTrash, conIcons.delete
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 const MaterialApp(
debugShowCheckedModeBanner: false,
home: HomeScreen(),
);
}
}
class HomeScreen extends StatefulWidget {
const HomeScreen({super.key});
@override
State<HomeScreen> createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
String folder = 'Inbox';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text(folder)),
body: Center(
child: Text('No messages in $folder'),
),
drawer: Drawer(
child: ListView(
children: [
const DrawerHeader(
child: Text('Mail', style: TextStyle(fontSize: 24)),
),
ListTile(
leading: const Icon(Icons.inbox),
title: const Text('Inbox'),
onTap: () {
setState(() {
folder = 'Inbox';
});
Navigator.pop(context);
},
),
],
),
),
);
}
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Elenchi e schermate
1Elenchi scorrevoli
Un elenco scorrevoleElementi dell’elencoInizio e fineTocca un elemento dell’elencoSeparare le righe6Schede, cassetti e scorrimenti
Schede con una barra di navigazioneIcone piene per la scheda apertaUn cassetto lateraleScorri per eliminareAnnullare uno scorrimentoEsercitati da solo: Compilatore Flutter online