DrawerManagerProvider class

DrawerManagerProvider has the ability to swap Scaffold body contents, subclassing ChangeNotifier.

A Drawer Manager is similar to the Android Drawer, in that it swaps out Widgets (like Android Fragments). It does this by notifying the Scaffold body of the changes needed for your selection using the DrawerManagerProvider's body property.


  Widget get body {
    return Consumer<DrawerManagerProvider>(builder: (context, dmObj, _) {
      if(drawerSelections.isNotEmpty) {
        return drawerSelections[_currentDrawer];
      } else {
        return Container();
      }
    });
  }

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. This happens in the DrawerManagerProvider.selectDrawer method, and it basically returns from a list of onTap functions the position that was tapped. Then it uses that positin 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.

Selections can be more than the Drawer Tiles, but the tiles can not be more than the selections. Here is an example of a DrawerManager with drawerElements and drawerSelections added.


   const drawerSelections = [
     HelloPage(),
     CounterPage(),
     TheMACPage()
   ];


   final manager = Provider.of<DrawerManagerProvider>(context, listen: false);

   return Scaffold(
       appBar: AppBar(title: "Some App Bar Title"),
       body: manager.body,
       drawer: DrawerManager(
           ...
           tileSelections: drawerSelections
       )
   )

Inheritance

Constructors

DrawerManagerProvider()

Properties

body Widget
no setter
drawerSelections List<Widget>
getter/setter pair
hashCode int
The hash code for this object.
no setterinherited
hasListeners bool
Whether any listeners are currently registered.
no setterinherited
onTapFunctions List<GestureTapCallback>
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
selection int
no setter

Methods

addListener(VoidCallback listener) → void
Register a closure to be called when the object changes.
inherited
dispose() → void
Discards any resources used by the object. After this is called, the object is not in a usable state and should be discarded (calls to addListener will throw after the object is disposed).
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notifyListeners() → void
Call all the registered listeners.
inherited
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that are notified when the object changes.
inherited
selectDrawer(GestureTapCallback onTap) → void
toString() String
A string representation of this object.
inherited

Operators

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