ControlButtonsComponentOptions constructor
const
ControlButtonsComponentOptions({
- required List<
ControlButton> buttons, - MainAxisAlignment alignment = MainAxisAlignment.start,
- bool vertical = false,
- Color? buttonBackgroundColor,
- BoxConstraints? buttonsContainerConstraints,
- ControlButtonStateColors? buttonBackgroundColors,
- Color? buttonColor,
- Color? activeIconColor,
- Color? inactiveIconColor,
- double? iconSize,
- TextStyle? textStyle,
- EdgeInsetsGeometry? containerPadding,
- EdgeInsetsGeometry? containerMargin,
- Decoration? containerDecoration,
- AlignmentGeometry? containerAlignment,
- Clip containerClipBehavior = Clip.none,
- EdgeInsetsGeometry? buttonPadding,
- EdgeInsetsGeometry? buttonMargin,
- BoxDecoration? buttonDecoration,
- BorderRadiusGeometry? buttonBorderRadius,
- BoxConstraints? buttonConstraints,
- EdgeInsetsGeometry? contentPadding,
- MainAxisAlignment? contentMainAxisAlignment,
- CrossAxisAlignment? contentCrossAxisAlignment,
- double? contentGap,
- Widget? alternateIconComponent,
- EdgeInsetsGeometry? labelPadding,
- EdgeInsetsGeometry? iconPadding,
- ControlButtonsContainerBuilder? containerBuilder,
- ControlButtonsButtonsBuilder? buttonsBuilder,
- ControlButtonsButtonBuilder? buttonBuilder,
- ControlButtonsButtonContentBuilder? buttonContentBuilder,
- ControlButtonsButtonIconBuilder? iconBuilder,
- ControlButtonsButtonLabelBuilder? labelBuilder,
- double? gap,
Configuration for the control-buttons component displaying a horizontal/vertical action bar.
- buttons - Array of
ControlButton
objects; each hasname
,icon
,alternateIcon
,onPress
,active
,show
,disabled
,customComponent
. - alignment - Main-axis alignment for button layout (default:
MainAxisAlignment.start
). - vertical - Boolean controlling layout direction:
true
= vertical (Column),false
= horizontal (Row). Default:false
. - buttonBackgroundColor - Global background color for all buttons; overridden by
buttonBackgroundColors
or per-buttonbackgroundColor
. - buttonsContainerConstraints - Optional
BoxConstraints
for container size limits. - buttonBackgroundColors - Map of state-based background colors:
{'default': Color, 'pressed': Color, 'disabled': Color}
. - buttonColor - Global text color for button labels; overridden by per-button
color
. - activeIconColor / inactiveIconColor - Global icon colors for active/inactive states; overridden by per-button
activeColor
/inActiveColor
. - iconSize - Global icon size; overridden by per-button
iconSize
. - textStyle - Global text style for labels; overridden by per-button
textStyle
. - containerPadding / containerMargin / containerDecoration / containerAlignment / containerClipBehavior - Container styling options.
- buttonPadding / buttonMargin / buttonDecoration / buttonBorderRadius / buttonConstraints - Per-button styling options.
- contentPadding / contentMainAxisAlignment / contentCrossAxisAlignment / contentGap - Icon+label layout options within button.
- alternateIconComponent - Global custom widget for active icon; overridden by per-button
alternateIconWidget
. - labelPadding / iconPadding - Padding around label/icon.
- gap - Spacing between buttons in logical pixels.
- containerBuilder - Override entire container; receives
ControlButtonsContainerContext
withdirection
,visibleButtons
. - buttonsBuilder - Override button layout; receives
ControlButtonsButtonsContext
withbuttons
,spacedButtons
. - buttonBuilder - Override individual button; receives
ControlButtonsButtonContext
withbutton
,index
,isActive
. - buttonContentBuilder - Override button content (icon+label); receives
ControlButtonsButtonContentContext
withicon
,label
. - iconBuilder - Override icon widget; receives
ControlButtonsButtonIconContext
withbutton
,isActive
. - labelBuilder - Override label widget; receives
ControlButtonsButtonLabelContext
withbutton
,isActive
.
Usage
- Component filters
buttons
byshow == true
, builds list of visible buttons. - Each button displays icon (or
alternateIcon
whenactive == true
) above label (ifname
provided). - Icon color determined by
active ? activeIconColor : inactiveIconColor
(or per-button overrides). - Label color determined by
buttonColor
(or per-buttoncolor
). - Button tap invokes
onPress
callback (if notdisabled
). - Layout direction determined by
vertical
:false
= Row,true
= Column. - Override via
MediasfuUICustomOverrides.controlButtonsComponent
to inject custom button designs, animations, or tooltips.
Implementation
const ControlButtonsComponentOptions({
required this.buttons,
this.alignment = MainAxisAlignment.start,
this.vertical = false,
this.buttonBackgroundColor,
this.buttonsContainerConstraints,
this.buttonBackgroundColors,
this.buttonColor,
this.activeIconColor,
this.inactiveIconColor,
this.iconSize,
this.textStyle,
this.containerPadding,
this.containerMargin,
this.containerDecoration,
this.containerAlignment,
this.containerClipBehavior = Clip.none,
this.buttonPadding,
this.buttonMargin,
this.buttonDecoration,
this.buttonBorderRadius,
this.buttonConstraints,
this.contentPadding,
this.contentMainAxisAlignment,
this.contentCrossAxisAlignment,
this.contentGap,
this.alternateIconComponent,
this.labelPadding,
this.iconPadding,
this.containerBuilder,
this.buttonsBuilder,
this.buttonBuilder,
this.buttonContentBuilder,
this.iconBuilder,
this.labelBuilder,
this.gap,
});