blob: 3c463a580ce0141af4a2d63742bb6b1ef3437809 [file] [log] [blame]
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/material.dart';
/// Flutter code sample for [Drawer].
void main() => runApp(const DrawerApp());
class DrawerApp extends StatelessWidget {
const DrawerApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(home: DrawerExample());
}
}
class DrawerExample extends StatefulWidget {
const DrawerExample({super.key});
@override
State<DrawerExample> createState() => _DrawerExampleState();
}
class _DrawerExampleState extends State<DrawerExample> {
String selectedPage = '';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Drawer Example')),
drawer: Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: <Widget>[
const DrawerHeader(
decoration: BoxDecoration(color: Colors.blue),
child: Text('Drawer Header', style: TextStyle(color: Colors.white, fontSize: 24)),
),
ListTile(
leading: const Icon(Icons.message),
title: const Text('Messages'),
onTap: () {
setState(() {
selectedPage = 'Messages';
});
},
),
ListTile(
leading: const Icon(Icons.account_circle),
title: const Text('Profile'),
onTap: () {
setState(() {
selectedPage = 'Profile';
});
},
),
ListTile(
leading: const Icon(Icons.settings),
title: const Text('Settings'),
onTap: () {
setState(() {
selectedPage = 'Settings';
});
},
),
],
),
),
body: Center(child: Text('Page: $selectedPage')),
);
}
}