MenuController class
Manages the lifecycle, selection, filtering, and overlay visibility of a Menu.
Extends ValueNotifier so the Menu widget rebuilds whenever the state changes. You can create a controller externally and pass it to Menu for programmatic control, or let the widget create one internally.
Key methods
- selectItem — picks an item, closes the overlay, and unfocuses.
- filterItems — filters the item list against a search query.
- searchHighlight — highlights the best-matching item without filtering.
- highlightNext / highlightPrevious — keyboard arrow navigation.
- showOverlay / hideOverlay / toggleOverlay — overlay management.
- Inheritance
-
- Object
- ChangeNotifier
- ValueNotifier<
MenuState> - MenuController
Constructors
- MenuController({required MenuState initialState, FocusNode? focusNode})
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- hasListeners → bool
-
Whether any listeners are currently registered.
no setterinherited
- isOverlayVisible → bool
-
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- value ↔ MenuState
-
The current value stored in this notifier.
getter/setter pairinherited
Methods
-
addListener(
VoidCallback listener) → void -
Register a closure to be called when the object changes.
inherited
-
attachFocusNode(
FocusNode node) → void -
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).
override
-
filterItems(
List< MenuItem> allItems, String query, {MenuFilterCallback? filterCallback}) → void -
hideOverlay(
) → void -
highlightNext(
) → void -
highlightPrevious(
) → void -
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
-
searchHighlight(
String query, {MenuSearchCallback? searchCallback}) → void -
selectHighlighted(
) → void -
selectItem(
MenuItem item) → void -
showOverlay(
BuildContext context, OverlayEntry builder()) → void -
toggleOverlay(
BuildContext context, OverlayEntry builder()) → void -
toString(
) → String -
A string representation of this object.
inherited
-
updateFilteredItems(
List< MenuItem> items) → void
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited