Button class
Flutter-style button widget for triggering callbacks.
The Button widget is the base button implementation used by ElevatedButton, FilledButton, TextButton, and OutlinedButton. It supports hover and focus states, keyboard activation, and custom styling through ButtonVariant and ButtonSize.
The variant controls the visual appearance:
- ButtonVariant.primary - filled with primary color background
- ButtonVariant.secondary - filled with secondary/surface color
- ButtonVariant.danger - filled with error color background
- ButtonVariant.outline - transparent with border outline
- ButtonVariant.ghost - transparent, no border
The button is disabled when enabled is false or when onPressed is null.
Use autofocus and focusController to control keyboard focus behavior.
- Inheritance
-
- Object
- Widget
- StatefulWidget
- Button
Constructors
- Button({String? label, Widget? child, CmdCallback? onPressed, ButtonVariant variant = ButtonVariant.primary, ButtonSize size = ButtonSize.medium, EdgeInsets? padding, Style? textStyle, bool enabled = true, bool autofocus = false, String? focusId, FocusController? focusController, Key? key})
Properties
- accessibilityLabel → String?
-
Optional accessibility label.
no setterinherited
- accessibilityRole → String
-
Optional accessibility role.
no setterinherited
- autofocus → bool
-
final
- child → Widget?
-
final
-
children
→ List<
Widget> -
Child widgets that receive forwarded messages.
no setterinherited
- debugRenderObjectPassthrough → bool
-
Whether this widget is intentionally transparent to render-object layouts.
no setterinherited
- degradationSignal → WidgetDegradationSignal
-
Signal that controls this widget's render budget behavior.
no setterinherited
- enabled → bool
-
final
- focusable → bool
-
Whether this widget can receive keyboard focus.
no setterinherited
- focusController → FocusController?
-
final
- focusId → String?
-
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- id → String
-
Unique identifier for this widget.
no setterinherited
- key → Key?
-
Key for preserving widget identity.
finalinherited
- label → String?
-
final
- onPressed → CmdCallback?
-
final
- padding → EdgeInsets?
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- size → ButtonSize
-
final
- textStyle → Style?
-
final
- theme → Theme
-
Access the current theme.
no setterinherited
- variant → ButtonVariant
-
final
Methods
-
buildCachedView<
T> (T builder(), Object? cacheKey) → T -
Returns a cached view if the cache key matches.
inherited
-
createState(
) → State< StatefulWidget> -
Creates the mutable State associated with this widget.
override
-
handleInit(
) → Cmd? -
Override this instead of init for widget-specific initialization.
inherited
-
handleIntercept(
Msg msg) → (Widget, Cmd?) -
Override this to handle messages before they reach children.
inherited
-
handleUpdate(
Msg msg) → (Widget, Cmd?) -
Override this to handle messages specific to this widget.
inherited
-
init(
) → Cmd? -
Called once when the widget is first mounted.
inherited
-
invalidateCachedView(
) → void -
Clears any cached view for this widget.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
shouldRenderAt(
DegradationLevel degradationLevel, {required bool subtreeHasFocusedWidget}) → bool -
Whether this widget should participate in the current render when
degradationLevelis active.inherited -
toString(
) → String -
A string representation of this object.
inherited
-
update(
Msg msg) → (Model, Cmd?) -
Handles messages by forwarding to children then calling handleUpdate.
inherited
-
view(
) → Object -
Renders the widget to a string or View.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited