UiSmartActionGroup class

Experimental inline action group for replacing "More" sheets with morphing buttons.

This renderer is geometry-first: every frame is solved as a list of exact button rectangles before any widgets are built. That keeps width, gaps, opacity, and hit testing coordinated and avoids transient Flex overflows.

Inheritance

Constructors

UiSmartActionGroup({Key? key, required List<UiSmartActionGroupAction> actions, int collapsedCount = 1, bool? expanded, bool initiallyExpanded = false, ValueChanged<bool>? onExpandedChanged, UiSize size = UiSize.sm, String moreLabel = 'More', String collapseLabel = 'Less', Widget moreIcon = const Icon(LucideIcons.ellipsis), Widget collapseIcon = const Icon(LucideIcons.chevronUp), UiIntent moreIntent = UiIntent.neutral, UiIntent collapseIntent = UiIntent.neutral, bool showCollapseAction = true, bool collapseOnAction = false, UiSmartActionGroupExpandedLayout expandedLayout = UiSmartActionGroupExpandedLayout.equal, double? moreButtonWidth, double? collapseButtonWidth, double compactBreakpoint = 420, double? spacing, UiMotionDuration duration = UiMotionDuration.slow, Curve? curve, String? semanticLabel})
const

Properties

actions List<UiSmartActionGroupAction>
Ordered actions. The first collapsedCount stay visible while collapsed.
final
collapseButtonWidth double?
Fixed wide-layout width for the expanded collapse control.
final
collapsedCount int
Number of leading actions shown before the "more" control.
final
collapseIcon Widget
Leading icon for the expanded collapse control.
final
collapseIntent UiIntent
Intent for the expanded collapse control.
final
collapseLabel String
Label for the expanded collapse control.
final
collapseOnAction bool
Whether activating a non-toggle action collapses the group first.
final
compactBreakpoint double
Below this width the group falls back to a horizontal scroll viewport.
final
curve Curve?
Override transition curve. Defaults to theme standard curve.
final
duration UiMotionDuration
final
expanded bool?
Controlled expanded state. When null, the widget owns its state.
final
expandedLayout UiSmartActionGroupExpandedLayout
Width policy once the hidden actions are shown in wide layouts.
final
hashCode int
The hash code for this object.
no setterinherited
initiallyExpanded bool
Initial uncontrolled expanded state.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
moreButtonWidth double?
Fixed wide-layout width for the collapsed overflow control.
final
moreIcon Widget
Leading icon for the collapsed overflow control.
final
moreIntent UiIntent
Intent for the collapsed overflow control.
final
moreLabel String
Label for the collapsed overflow control.
final
onExpandedChanged ValueChanged<bool>?
Called whenever the expanded state should change.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
semanticLabel String?
Spoken label for the semantic group.
final
showCollapseAction bool
Whether to append a collapse button when expanded.
final
size UiSize
Button size applied to every action.
final
spacing double?
Gap between buttons. Defaults to the token x2 spacing.
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<UiSmartActionGroup>
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.
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