FButton class
A button.
FButton typically contains icons and/or a label. If the onPress and onLongPress callbacks are null, then this button will be disabled, and it will not react to touch.
Why do tappables inside OverlayPortals sometimes not respond to taps?
Wrap the overlay content in FTappableGroup.isolate.
This is probably caused by the OverlayPortal being wrapped in an FTappableGroup. Since an OverlayPortal reparents inherited widgets, the FTappables are registered with the ancestor FTappableGroup which does not hit test across rendering layers.
FPortal-based widgets handle this automatically.
See:
- https://forui.dev/docs/form/button for working examples.
- FButtonStyle for customizing a button's appearance.
- Inheritance
Constructors
-
FButton({required VoidCallback? onPress, required Widget child, FButtonVariant variant = .primary, FButtonSizeVariant size = .md, FButtonStyleDelta style = const .context(), VoidCallback? onLongPress, VoidCallback? onDoubleTap, VoidCallback? onSecondaryPress, VoidCallback? onSecondaryLongPress, bool autofocus = false, FocusNode? focusNode, ValueChanged<
bool> ? onFocusChange, ValueChanged<bool> ? onHoverChange, FTappableVariantChangeCallback? onVariantChange, bool selected = false, Map<ShortcutActivator, Intent> ? shortcuts, Map<Type, Action< ? actions, MainAxisSize mainAxisSize = .max, MainAxisAlignment mainAxisAlignment = .center, CrossAxisAlignment crossAxisAlignment = .center, TextBaseline? textBaseline, Widget? prefix, Widget? suffix, Key? key})Intent> > -
Creates a FButton that contains a
prefix,child, andsuffix. -
FButton.icon({required VoidCallback? onPress, required Widget child, FButtonVariant variant = .outline, FButtonSizeVariant size = .md, FButtonStyleDelta style = const .context(), VoidCallback? onLongPress, VoidCallback? onDoubleTap, VoidCallback? onSecondaryPress, VoidCallback? onSecondaryLongPress, bool autofocus = false, FocusNode? focusNode, ValueChanged<
bool> ? onFocusChange, ValueChanged<bool> ? onHoverChange, FTappableVariantChangeCallback? onVariantChange, bool selected = false, Map<ShortcutActivator, Intent> ? shortcuts, Map<Type, Action< ? actions, Key? key})Intent> > - Creates a FButton that contains only an icon.
-
FButton.raw({required VoidCallback? onPress, required Widget child, FButtonVariant variant = .primary, FButtonSizeVariant size = .md, FButtonStyleDelta style = const .context(), VoidCallback? onLongPress, VoidCallback? onDoubleTap, VoidCallback? onSecondaryPress, VoidCallback? onSecondaryLongPress, bool autofocus = false, FocusNode? focusNode, ValueChanged<
bool> ? onFocusChange, ValueChanged<bool> ? onHoverChange, FTappableVariantChangeCallback? onVariantChange, bool selected = false, Map<ShortcutActivator, Intent> ? shortcuts, Map<Type, Action< ? actions, Key? key})Intent> > -
Creates a FButton with custom content.
const
Properties
-
actions
→ Map<
Type, Action< ?Intent> > -
The actions. Defaults to calling onPress when ActivateIntent is invoked and onPress is not null.
final
- autofocus → bool
-
True if this widget will be selected as the initial focus when no other node in its scope is currently focused.
final
- child → Widget
-
The child.
final
- focusNode → FocusNode?
-
An optional focus node to use as the focus node for this widget.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- onDoubleTap → VoidCallback?
-
A callback for when the widget is double tapped.
final
-
onFocusChange
→ ValueChanged<
bool> ? -
Handler called when the focus changes.
final
-
onHoverChange
→ ValueChanged<
bool> ? -
Handler called when the hover changes.
final
- onLongPress → VoidCallback?
-
A callback for when the widget is long pressed.
final
- onPress → VoidCallback?
-
A callback for when the widget is pressed.
final
- onSecondaryLongPress → VoidCallback?
-
A callback for when the widget is pressed with a secondary button (usually right-click on desktop).
final
- onSecondaryPress → VoidCallback?
-
A callback for when the widget is pressed with a secondary button (usually right-click on desktop).
final
- onVariantChange → FTappableVariantChangeCallback?
-
Handler called when there are any changes to a tappable's FTappableVariants.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- selected → bool
-
True if this button is currently selected. Defaults to false.
final
-
shortcuts
→ Map<
ShortcutActivator, Intent> ? -
The shortcuts. Defaults to calling ActivateIntent if onPress is not null.
final
- size → FButtonSizeVariant
-
The button size. Defaults to FButtonSizeVariant.md.
final
- style → FButtonStyleDelta
-
The style delta applied to the style resolved by variant and size.
final
- variant → FButtonVariant
-
The variant. Defaults to FButtonVariant.primary.
final
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.
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