FContextMenu class

A context menu displays a menu at the user's pointer.

Keyboard

Shift+F10 (Control+Return on macOS) or the menu key opens the menu below the focused descendant of child. A child with no focusable descendants cannot be opened by keyboard.

Note

BrowserContextMenu.disableContextMenu needs to be called manually on web platforms to prevent the browser's native context menu from appearing.

See:

Inheritance

Constructors

FContextMenu({FPopoverControl control = const .managed(), FPopoverMenuStyleDelta style = const .context(), ScrollController? scrollController, ScrollCacheExtent? scrollCacheExtent, double maxHeight = .infinity, bool intrinsicWidth = true, DragStartBehavior dragStartBehavior = .start, FItemDivider divider = .full, AlignmentGeometry menuAnchor = .topLeft, double spacing = 0, FPortalOverflow overflow = .flip, bool useViewPadding = true, bool useViewInsets = true, OverlayChildLocation overlayLocation = .nearestOverlay, Offset offset = .zero, Object? groupId, FPopoverHideRegion hideRegion = .excludeChild, VoidCallback? onTapHide, String? barrierSemanticsLabel, bool barrierSemanticsDismissible = true, bool cutout = false, void cutoutBuilder(Path path, Rect bounds) = FModalBarrier.defaultCutoutBuilder, String? semanticsLabel, bool? autofocus, FocusScopeNode? focusNode, ValueChanged<bool>? onFocusChange, TraversalEdgeBehavior? traversalEdgeBehavior, bool? faded, bool? longPress, bool? secondaryPress, ValueWidgetBuilder<FPopoverController> builder = FPopover.defaultBuilder, Widget? child, List<FItemGroupMixin> menuBuilder(BuildContext context, FPopoverController controller, List<FItemGroupMixin>? menu) = FPopoverMenu.defaultItemBuilder, List<FItemGroupMixin>? menu, Key? key})
Creates a context menu of FItems.
FContextMenu.tiles({FPopoverControl control = const .managed(), FPopoverMenuStyleDelta style = const .context(), ScrollController? scrollController, ScrollCacheExtent? scrollCacheExtent, double maxHeight = .infinity, bool intrinsicWidth = true, DragStartBehavior dragStartBehavior = .start, FItemDivider divider = .full, AlignmentGeometry menuAnchor = .topLeft, double spacing = 0, FPortalOverflow overflow = .flip, bool useViewPadding = true, bool useViewInsets = true, OverlayChildLocation overlayLocation = .nearestOverlay, Offset offset = .zero, Object? groupId, FPopoverHideRegion hideRegion = .excludeChild, VoidCallback? onTapHide, String? barrierSemanticsLabel, bool barrierSemanticsDismissible = true, bool cutout = false, void cutoutBuilder(Path path, Rect bounds) = FModalBarrier.defaultCutoutBuilder, String? semanticsLabel, bool? autofocus, FocusScopeNode? focusNode, ValueChanged<bool>? onFocusChange, TraversalEdgeBehavior? traversalEdgeBehavior, bool? faded, bool? longPress, bool? secondaryPress, ValueWidgetBuilder<FPopoverController> builder = FPopover.defaultBuilder, Widget? child, List<FTileGroupMixin> menuBuilder(BuildContext context, FPopoverController controller, List<FTileGroupMixin>? menu) = FPopoverMenu.defaultTileBuilder, List<FTileGroupMixin>? menu, Key? key})
Creates a context menu of FTiles.

Properties

autofocus → bool?
True if this widget will be selected as the initial focus when no other node in its scope is currently focused.
final
barrierSemanticsDismissible → bool
Whether the barrier semantics are included in the semantics tree. Defaults to true.
final
barrierSemanticsLabel → String?
The popover's barrier label used by accessibility frameworks.
final
builder → ValueWidgetBuilder<FPopoverController>
An optional builder which returns the child widget that the popover is aligned to.
final
child → Widget?
The child that acts as the trigger region.
final
control → FPopoverControl
Defines how the context menu's shown state is controlled.
final
cutout → bool
Whether the barrier should exclude the builder/child's area using a non-interactive cutout.
final
cutoutBuilder → void Function(Path path, Rect bounds)
An optional callback that customizes the cutout shape.
final
divider → FItemDivider
The divider between tiles.
final
dragStartBehavior → DragStartBehavior
Determines the way that drag start behavior is handled. Defaults to DragStartBehavior.start.
final
faded → bool?
Whether the parent menu fades when a submenu is active.
final
focusNode → FocusScopeNode?
An optional focus node to use as the focus node for this widget.
final
groupId → Object?
An optional group ID that groups TapRegions together so that they operate as one region. If a tap occurs outside of all group members, then group members that are shown will be hidden.
final
hashCode → int
The hash code for this object.
no setterinherited
hideRegion → FPopoverHideRegion
The region that can be tapped to hide the popover.
final
intrinsicWidth → bool
Whether the menu should intrinsically size to the widest child. Defaults to true.
final
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
longPress → bool?
Whether a long press triggers the context menu.
final
maxHeight → double
The max height, in logical pixels. Defaults to infinity.
final
The anchor point on the menu used for positioning relative to the gesture point.
final
offset → Offset
Additional translation to apply to the popover's position.
final
onFocusChange → ValueChanged<bool>?
Handler called when the focus changes.
final
onTapHide → VoidCallback?
A callback that is called when the popover is hidden by tapping outside of it.
final
overflow → FPortalOverflow
The callback used to shift a popover when it overflows out of the viewport.
final
overlayLocation → OverlayChildLocation
The Overlay that the portal is attached to.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
scrollCacheExtent → ScrollCacheExtent?
The scrollable area's cache extent.
final
scrollController → ScrollController?
The scroll controller used to control the position to which this group is scrolled.
final
secondaryPress → bool?
Whether a secondary press (e.g. right-click) triggers the context menu.
final
semanticsLabel → String?
The menu's semantic label used by accessibility frameworks.
final
spacing → double
The gap between the gesture point and the menu's menuAnchor. Defaults to 0.
final
style → FPopoverMenuStyleDelta
The context menu's style.
final
traversalEdgeBehavior → TraversalEdgeBehavior?
Controls the transfer of focus beyond the first and the last items in a popover. Defaults to TraversalEdgeBehavior.closedLoop.
final
useViewInsets → bool
Whether to avoid the platform view's insets (the soft keyboard).
final
useViewPadding → bool
Whether to avoid the platform view's padding (static safe areas like the notch and status bar).
final

Methods

createElement() → StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() → State<FContextMenu>
Creates the mutable state for this widget at a given location in the tree.
override
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.
override
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