DrawerTile class
A DrawerTile provides access to the drawer selections, using the DrawerManagerProvider.
The Drawer Tile class is a child of ListTile, but has a required on onTap attribute, to maintain the selection order. The first DrawerTile will align with the first drawer selection. You can have more selections than tiles, but not more Drawer Tiles than selections.
This happens in the DrawerManagerProvider.selectDrawer method, and it returns from a list of onTap functions the position that was tapped. Then it uses that position to set the current drawer selection, and notifies the Drawer Manager's body property and any other Consumers to make the update for this drawer selection. Lastly, it calls to the onTap that was passed from the Drawer Tile.
void selectDrawer(GestureTapCallback onTap) async {
final position = await Future<int>.value(onTapFunctions.indexOf(onTap));
_currentDrawerSelection = position;
notifyListeners();
onTap();
}
Similar to Flutter's TextEditingController, the Drawer Manager uses Provider's ChangeNotifier as a parent class to manage user selection by displaying the Widget selection.
Here is an example of a DrawerManager with drawerElements and more drawerSelections added than Drawer Tiles.
const drawerSelections = [
HelloPage(),
CounterPage(),
TheMACPage()
];
drawer: DrawerManager(
context: context,
drawerElements: [
const DrawerHeader(
child: Padding(
padding: EdgeInsets.only(bottom: 20),
child: Icon(Icons.account_circle),
),
),
DrawerTile(
context: context,
leading: const Icon(Icons.hail_rounded),
title: Text('Hello'),
onTap: () async {
// RUN A BACKEND Hello, Flutter OPERATION
},
),
// ...
],
tileSelections: drawerSelections
)
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatelessWidget
- ListTile
- DrawerTile
Constructors
- DrawerTile({required BuildContext context, required dynamic onTap, Key? key, dynamic leading, dynamic title, dynamic subtitle, dynamic trailing, dynamic isThreeLine = false, dynamic dense, dynamic visualDensity, dynamic shape, dynamic style, dynamic selectedColor, dynamic iconColor, dynamic textColor, dynamic contentPadding, dynamic enabled = true, dynamic onLongPress, dynamic mouseCursor, dynamic selected = false, dynamic focusColor, dynamic hoverColor, dynamic focusNode, dynamic autofocus = false, dynamic tileColor, dynamic selectedTileColor, dynamic enableFeedback, dynamic horizontalTitleGap, dynamic minVerticalPadding, dynamic minLeadingWidth})
Properties
- autofocus → bool
-
True if this widget will be selected as the initial focus when no other
node in its scope is currently focused.
finalinherited
- contentPadding → EdgeInsetsGeometry?
-
The tile's internal padding.
finalinherited
- dense → bool?
-
Whether this list tile is part of a vertically dense list.
finalinherited
- enabled → bool
-
Whether this list tile is interactive.
finalinherited
- enableFeedback → bool?
-
Whether detected gestures should provide acoustic and/or haptic feedback.
finalinherited
- focusColor → Color?
-
The color for the tile's Material when it has the input focus.
finalinherited
- focusNode → FocusNode?
-
An optional focus node to use as the focus node for this widget.
finalinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- horizontalTitleGap → double?
-
The horizontal gap between the titles and the leading/trailing widgets.
finalinherited
- hoverColor → Color?
-
The color for the tile's Material when a pointer is hovering over it.
finalinherited
- iconColor → Color?
-
Defines the default color for leading and trailing icons.
finalinherited
- isThreeLine → bool
-
Whether this list tile is intended to display three lines of text.
finalinherited
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- leading → Widget?
-
A widget to display before the title.
finalinherited
- leadingAndTrailingTextStyle → TextStyle?
-
The text style for ListTile's leading and trailing.
finalinherited
- minLeadingWidth → double?
-
The minimum width allocated for the ListTile.leading widget.
finalinherited
- minVerticalPadding → double?
-
The minimum padding on the top and bottom of the title and subtitle widgets.
finalinherited
- mouseCursor → MouseCursor?
-
The cursor for a mouse pointer when it enters or is hovering over the
widget.
finalinherited
-
onFocusChange
→ ValueChanged<
bool> ? -
Handler called when the focus changes.
finalinherited
- onLongPress → GestureLongPressCallback?
-
Called when the user long-presses on this list tile.
finalinherited
- onTap → GestureTapCallback?
-
Called when the user taps this list tile.
finalinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- selected → bool
-
If this tile is also enabled then icons and text are rendered with the same color.
finalinherited
- selectedColor → Color?
-
Defines the color used for icons and text when the list tile is selected.
finalinherited
- selectedTileColor → Color?
-
Defines the background color of
ListTile
when selected is true.finalinherited - shape → ShapeBorder?
-
Defines the tile's InkWell.customBorder and Ink.decoration shape.
finalinherited
- splashColor → Color?
-
The color of splash for the tile's Material.
finalinherited
- style → ListTileStyle?
-
Defines the font used for the title.
finalinherited
- subtitle → Widget?
-
Additional content displayed below the title.
finalinherited
- subtitleTextStyle → TextStyle?
-
The text style for ListTile's subtitle.
finalinherited
- textColor → Color?
-
Defines the text color for the title, subtitle, leading, and trailing.
finalinherited
- tileColor → Color?
-
Defines the background color of
ListTile
when selected is false.finalinherited - title → Widget?
-
The primary content of the list tile.
finalinherited
- titleAlignment → ListTileTitleAlignment?
-
Defines how ListTile.leading and ListTile.trailing are
vertically aligned relative to the ListTile's titles
(ListTile.title and ListTile.subtitle).
finalinherited
- titleTextStyle → TextStyle?
-
The text style for ListTile's title.
finalinherited
- trailing → Widget?
-
A widget to display after the title.
finalinherited
- visualDensity → VisualDensity?
-
Defines how compact the list tile's layout will be.
finalinherited
Methods
-
build(
BuildContext context) → Widget -
Describes the part of the user interface represented by this widget.
inherited
-
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}) → 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