what is drawer in flutter
In Flutter, a Drawer
is a sliding panel that typically contains a list of items. It is used for navigation within an app. The Drawer
slides in from the side of the screen and can be opened by swiping from the left edge of the screen or by tapping the menu icon in the AppBar
.
Example of Using a Drawer :-
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomeScreen(),
);
}
}
class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Home Screen'),
),
drawer: Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: <Widget>[
DrawerHeader(
child: Text(
'Drawer Header',
style: TextStyle(color: Colors.white, fontSize: 24),
),
decoration: BoxDecoration(
color: Colors.blue,
),
),
ListTile(
leading: Icon(Icons.home),
title: Text('Home'),
onTap: () {
Navigator.pop(context);
},
),
ListTile(
leading: Icon(Icons.person),
title: Text('Profile'),
onTap: () {
Navigator.pop(context);
},
),
ListTile(
leading: Icon(Icons.settings),
title: Text('Settings'),
onTap: () {
Navigator.pop(context);
},
),
],
),
),
body: Center(
child: Text('Hello, world!'),
),
);
}
}
Key Components of a Drawer
Key Components of a Drawer
Drawer
: The main widget that represents the drawer.
DrawerHeader
: A header widget that can be placed at the top of the drawer.ListView
: A scrollable list of items inside the drawer.ListTile
: A widget that represents a single item in the list. It can have an icon, title, and anonTap
callback.
Example Explained
- AppBar: Contains a title and optionally a menu icon to open the drawer.
- Drawer: Contains a
ListView
that holds aDrawerHeader
and severalListTile
widgets. - DrawerHeader: Displays a header at the top of the drawer.
- ListTile: Represents individual items in the drawer. Each
ListTile
can have an icon, title, and anonTap
event that can be used to handle navigation or other actions.