StreamContextMenu class

A contextual menu container that displays a list of menu items.

StreamContextMenu renders its children in a vertical list inside a decorated container with a shape, border, and drop shadow. The container is sized intrinsically to the width of its widest child.

Children are typically StreamContextMenuAction and StreamContextMenuSeparator widgets. For automatic separator insertion, use StreamContextMenuAction.separated to divide every item, or StreamContextMenuAction.sectioned to divide logical groups.

The container's appearance can be customized via StreamContextMenuTheme.

{@tool snippet}

A basic context menu with a manual separator:

StreamContextMenu(
  children: [
    StreamContextMenuAction(
      value: 'reply',
      label: Text('Reply'),
      leading: Icon(Icons.reply),
    ),
    StreamContextMenuAction(
      value: 'copy',
      label: Text('Copy Message'),
      leading: Icon(Icons.copy),
    ),
    StreamContextMenuSeparator(),
    StreamContextMenuAction.destructive(
      value: 'block',
      label: Text('Block User'),
      leading: Icon(Icons.block),
    ),
  ],
)

{@end-tool}

See also:

Inheritance

Constructors

StreamContextMenu({Key? key, required List<Widget> children, Clip clipBehavior = Clip.hardEdge, double? elevation})
Creates a context menu container.
const

Properties

children List<Widget>
The menu items to display.
final
clipBehavior Clip
The clip behavior for the menu container.
final
elevation double?
The z-coordinate at which to place this menu.
final
hashCode int
The hash code for this object.
no setterinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

build(BuildContext context) Widget
Describes the part of the user interface represented by this widget.
override
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, 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