open method
void
open({})
Opens the dropdown flyout
If barrierDismissible
is true, tapping outside of the flyout will close
it.
When dismissWithEsc
is true, the flyout can be dismissed by pressing the
ESC key.
If dismissOnPointerMoveAway
is enabled, the flyout is dismissed when the
cursor moves away from either the target or the flyout. It's disabled by
default.
See also:
- FlyoutController.showFlyout, which is used to show the dropdown flyout
Implementation
void open({
bool barrierDismissible = true,
bool dismissWithEsc = true,
bool dismissOnPointerMoveAway = false,
}) async {
if (_flyoutController.isOpen) return;
widget.onOpen?.call();
await _flyoutController.showFlyout(
barrierColor: Colors.transparent,
placementMode: FlyoutPlacementMode.auto,
autoModeConfiguration: FlyoutAutoConfiguration(
preferredMode: widget.placement,
),
additionalOffset: widget.verticalOffset,
barrierDismissible: barrierDismissible,
dismissOnPointerMoveAway: dismissOnPointerMoveAway,
dismissWithEsc: dismissWithEsc,
transitionBuilder: widget.transitionBuilder,
builder: (context) {
return MenuFlyout(
color: widget.menuColor,
shape: widget.menuShape,
items:
widget.items.map((item) => transformItem(item, context)).toList(),
);
},
);
widget.onClose?.call();
}