OutlinedLoadingButton class

带有加载状态表示的OutlinedButton实现

isLoading表示当前是否处于正在加载状态,如果值为true则将会显示加载中图标和加载提示文本,响应点击事件受loadingPressable影响。 如果loadingIcon为空则会使用默认的CircularProgressIndicator。 如果loadingLabel为空则不显示提示。

如果isLoading值为false则为非加载状态,仅显示child,且可响应点击事件。

loadingPressable表示在isLoading状态时是否可以响应点击事件,包括onPressedonLongPress,默认为false。 switchDuration为状态变化时导致的控件大小变化而执行的过渡动画时间,内部使用AnimatedSize实现,默认为kThemeAnimationDuration

style请参考使用OutlinedButton.styleFrom生成

Inheritance

Constructors

OutlinedLoadingButton.new({Key? key, required bool isLoading, required VoidCallback? onPressed, VoidCallback? onLongPress, ValueChanged<bool>? onHover, ValueChanged<bool>? onFocusChange, ButtonStyle? style, FocusNode? focusNode, bool autofocus = false, Clip? clipBehavior = Clip.none, MaterialStatesController? statesController, bool loadingPressable = false, Duration switchDuration = kThemeAnimationDuration, Widget? loadingIcon, Widget? loadingLabel, required Widget? child})
OutlinedLoadingButton.icon({Key? key, required bool isLoading, required VoidCallback? onPressed, VoidCallback? onLongPress, ValueChanged<bool>? onHover, ValueChanged<bool>? onFocusChange, ButtonStyle? style, FocusNode? focusNode, bool? autofocus, Clip? clipBehavior, MaterialStatesController? statesController, Widget? loadingIcon, Widget? loadingLabel, bool loadingPressable = false, Duration switchDuration = kThemeAnimationDuration, required Widget icon, required Widget label})
参考OutlinedButton.icon

Properties

autofocus bool
True if this widget will be selected as the initial focus when no other node in its scope is currently focused.
finalinherited
child Widget?
Typically the button's label.
finalinherited
clipBehavior Clip?
The content will be clipped (or not) according to this option.
finalinherited
enabled bool
Whether the button is enabled or disabled.
no setterinherited
focusNode FocusNode?
An optional focus node to use as the focus node for this widget.
finalinherited
hashCode int
The hash code for this object.
no setterinherited
iconAlignment IconAlignment?
Determines the alignment of the icon within the widgets such as:
finalinherited
isSemanticButton bool?
Determine whether this subtree represents a button.
finalinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
onFocusChange ValueChanged<bool>?
Handler called when the focus changes.
finalinherited
onHover ValueChanged<bool>?
Called when a pointer enters or exits the button response area.
finalinherited
onLongPress VoidCallback?
Called when the button is long-pressed.
finalinherited
onPressed VoidCallback?
Called when the button is tapped or otherwise activated.
finalinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
statesController MaterialStatesController?
Represents the interactive "state" of this widget in terms of a set of WidgetStates, like WidgetState.pressed and WidgetState.focused.
finalinherited
style ButtonStyle?
Customizes this button's appearance.
finalinherited
tooltip String?
Text that describes the action that will occur when the button is pressed or hovered over.
finalinherited

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<ButtonStyleButton>
Creates the mutable state for this widget at a given 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
defaultStyleOf(BuildContext context) ButtonStyle
Defines the button's default appearance.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
themeStyleOf(BuildContext context) ButtonStyle?
Returns the ButtonStyle that belongs to the button's component theme.
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