CarpenterButton class

Универсальная кнопка Carpenter.

Button использует material.ButtonStyleButton как механизм интерактивности: pointer, keyboard, focus, hover, pressed, disabled, semantics и widget states.

Визуальная модель полностью определяется Carpenter через context.face. Material button theme намеренно не используется.

Внешний вид задается независимыми параметрами:

  • type — вид поверхности;
  • color — semantic color family;
  • size — размер;
  • compact — горизонтальная компактность;
  • selected — выбранное состояние.

Кнопка поддерживает обычный label:

Button(
  label: 'Сохранить',
  onPressed: save,
)

label с иконкой:

Button(
  label: 'Сохранить',
  icon: Icon(...),
  onPressed: save,
)

icon-only:

Button(
  icon: Icon(...),
  semanticLabel: 'Удалить',
  compact: true,
  onPressed: delete,
)

произвольное содержимое:

Button(
  child: CustomContent(),
  onPressed: action,
)

и selectable-состояние:

Button(
  label: 'Закрепить',
  selected: pinned,
  color: CarpenterButtonColor.neutral,
  selectedColor: CarpenterButtonColor.accent,
  onPressed: togglePinned,
)
Inheritance

Constructors

CarpenterButton({Key? key, String? label, String? semanticLabel, Widget? icon, Widget? selectedIcon, Widget? selectedChild, bool? selected, CarpenterButtonType type = CarpenterButtonType.filled, CarpenterButtonSize size = CarpenterButtonSize.medium, CarpenterButtonColor color = CarpenterButtonColor.primary, CarpenterButtonColor? selectedColor, bool compact = false, IconAlignment iconPosition = material.IconAlignment.start, VoidCallback? onPressed, VoidCallback? onLongPress, ValueChanged<bool>? onHover, ValueChanged<bool>? onFocusChange, FocusNode? focusNode, bool autofocus = false, Clip clipBehavior = widgets.Clip.none, MaterialStatesController? statesController, bool isSemanticButton = true, String? tooltip, Widget? child})
Создает кнопку Carpenter.

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
color CarpenterButtonColor
Основная semantic color family.
final
compact bool
Уменьшает горизонтальные отступы.
final
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
icon Widget?
Иконка кнопки.
final
iconAlignment IconAlignment?
Determines the alignment of the icon within the widgets such as:
finalinherited
iconPosition IconAlignment
Логическое положение иконки относительно содержимого.
final
isSemanticButton bool?
Determine whether this subtree represents a button.
finalinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
label String?
Видимый текст кнопки.
final
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
selected bool?
Состояние выбора.
final
selectedChild Widget?
Полностью альтернативное содержимое выбранного состояния.
final
selectedColor CarpenterButtonColor?
Semantic color family выбранного состояния.
final
selectedIcon Widget?
Иконка выбранного состояния.
final
semanticLabel String?
Явное accessibility-описание кнопки.
final
size CarpenterButtonSize
Размер кнопки.
final
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
type CarpenterButtonType
Визуальный тип кнопки.
final

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
Returns a ButtonStyle that's based primarily on the Theme's ThemeData.textTheme and ThemeData.colorScheme, but has most values filled out (non-null).
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.
override
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