NavigationDrawer class

Material Design Navigation Drawer component.

On top of Drawers, Navigation drawers offer a persistent and convenient way to switch between primary destinations in an app.

The style for the icons and text are not affected by parent DefaultTextStyles or IconThemes but rather controlled by parameters or the NavigationDrawerThemeData.

The children are a list of widgets to be displayed in the drawer. These can be a mixture of any widgets, but there is special handling for NavigationDrawerDestinations. They are treated as a group and when one is selected, the onDestinationSelected is called with the index into the group that corresponds to the selected destination.

This example shows a NavigationDrawer used within a Scaffold widget. The NavigationDrawer has headline widget, divider widget and three NavigationDrawerDestination widgets. The initial selectedIndex is 0. The onDestinationSelected callback changes the selected item's index and displays a corresponding widget in the body of the Scaffold.
link

To create a local project with this code sample, run:
flutter create --sample=material.NavigationDrawer.1 mysample

See also:

Inheritance

Constructors

Creates a Material Design Navigation Drawer component.
const

Properties

backgroundColor Color?
The background color of the Material that holds the NavigationDrawer's contents.
final
children List<Widget>
Defines the appearance of the items within the navigation drawer.
final
elevation double?
The elevation of the NavigationDrawer itself.
final
hashCode int
The hash code for this object.
no setterinherited
indicatorColor Color?
The color of the indicatorShape when this destination is selected.
final
indicatorShape ShapeBorder?
The shape of the selected indicator.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
onDestinationSelected ValueChanged<int>?
Called when one of the NavigationDrawerDestination children is selected.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
selectedIndex int?
The index into destinations for the current selected NavigationDrawerDestination or null if no destination is selected.
final
shadowColor Color?
The color used for the drop shadow to indicate elevation.
final
surfaceTintColor Color?
The surface tint of the Material that holds the NavigationDrawer's contents.
final
tilePadding EdgeInsetsGeometry
Defines the padding for NavigationDrawerDestination widgets (Drawer items).
final

Methods

build(BuildContext context) Widget
Describes the part of the user interface represented by this widget.
override
createElement() StatelessElement
Creates a StatelessElement to manage this widget's location in the tree.
inherited
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited