IncrementDecrementWidget class
A widget that provides increment and decrement functionality with customizable buttons and display. It allows users to increase or decrease a numerical value within optional bounds, making it suitable for quantity selectors in shopping carts, forms, and other interactive UI components.
The IncrementDecrementWidget offers multiple factory constructors to cater to different design requirements, such as flat, raised, minimal, and squared styles. It also supports long-press actions for continuous incrementing or decrementing.
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- IncrementDecrementWidget
Constructors
- IncrementDecrementWidget({Key? key, required int quantity, int? maxQuantity, int? minValue, ValueUpdate? onChanged, Color? backgroundColor, Color? iconColor, double? elevation, EdgeInsetsGeometry? margin, EdgeInsetsGeometry? valuePadding, TextStyle? quantityTextStyle, double? borderRadius, double? width, double? height, EdgeInsetsGeometry? buttonPadding, EdgeInsetsGeometry? buttonMargin, double? buttonWidth, double? buttonHeight, Color? splashColor, Color? borderColor, InteractiveInkFeatureFactory? splashFactory, Widget? incrementIcon, Widget? decrementIcon, OutlinedBorder? buttonShape, Duration longPressInterval = const Duration(milliseconds: 100), MainAxisAlignment? alignment})
-
Creates an IncrementDecrementWidget with the specified properties.
const
- IncrementDecrementWidget.flat({required int quantity, int? maxQuantity, int? minValue, ValueUpdate? onChanged, Color? backgroundColor, Color? iconColor, EdgeInsetsGeometry? margin, EdgeInsetsGeometry? valuePadding, EdgeInsetsGeometry? buttonMargin, EdgeInsetsGeometry? buttonPadding, TextStyle? quantityTextStyle, double? borderRadius, double? width, double? height, double? buttonWidth, double? buttonHeight, Color? splashColor, Color? borderColor, InteractiveInkFeatureFactory? splashFactory, Widget? incrementIcon, Widget? decrementIcon, Duration longPressInterval = const Duration(milliseconds: 100), MainAxisAlignment? alignment})
-
Factory constructor for a flat design.
factory
- IncrementDecrementWidget.minimal({required int quantity, int? maxQuantity, int? minValue, ValueUpdate? onChanged, Color? iconColor, EdgeInsetsGeometry? margin, EdgeInsetsGeometry? valuePadding, EdgeInsetsGeometry? buttonMargin, EdgeInsetsGeometry? buttonPadding, TextStyle? quantityTextStyle, double? width, double? height, double? buttonWidth, double? buttonHeight, Widget? incrementIcon, Widget? decrementIcon, Duration longPressInterval = const Duration(milliseconds: 100), MainAxisAlignment? alignment})
-
Factory constructor for a minimalistic design.
factory
- IncrementDecrementWidget.raised({required int quantity, int? maxQuantity, int? minValue, ValueUpdate? onChanged, Color? backgroundColor, Color? iconColor, double? elevation, EdgeInsetsGeometry? margin, EdgeInsetsGeometry? valuePadding, EdgeInsetsGeometry? buttonMargin, EdgeInsetsGeometry? buttonPadding, TextStyle? quantityTextStyle, double? borderRadius, double? width, double? height, double? buttonWidth, double? buttonHeight, Color? borderColor, Widget? incrementIcon, Widget? decrementIcon, Duration longPressInterval = const Duration(milliseconds: 100), MainAxisAlignment? alignment})
-
Factory constructor for a raised design.
factory
- IncrementDecrementWidget.squared({required int quantity, int? maxQuantity, int? minValue, ValueUpdate? onChanged, Color? backgroundColor, Color? iconColor, double? elevation, EdgeInsetsGeometry? margin, EdgeInsetsGeometry? valuePadding, EdgeInsetsGeometry? buttonMargin, EdgeInsetsGeometry? buttonPadding, TextStyle? quantityTextStyle, double? width, double? height, double? buttonSize, double? borderRadius, Color? borderColor, Widget? incrementIcon, Widget? decrementIcon, Duration longPressInterval = const Duration(milliseconds: 100), MainAxisAlignment? alignment})
-
Factory constructor for squared buttons with equal width and height
and customizable border radius.
factory
Properties
- alignment → MainAxisAlignment?
-
The alignment of the buttons and quantity display within the widget.
final
- backgroundColor → Color?
-
The background color of the widget.
final
- borderColor → Color?
-
The border color of the buttons.
final
- borderRadius → double?
-
The border radius of the widget's buttons.
final
-
The height of the increment and decrement buttons.
final
-
The external margin around each increment and decrement button.
final
-
The padding inside the increment and decrement buttons.
final
-
The shape of the increment and decrement buttons.
final
-
The width of the increment and decrement buttons.
final
- decrementIcon → Widget?
-
The icon widget for the decrement button.
final
- elevation → double?
-
The elevation (shadow depth) of the widget.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- height → double?
-
The height of the entire widget.
final
- iconColor → Color?
-
The color of the widget's icons.
final
- incrementIcon → Widget?
-
The icon widget for the increment button.
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- longPressInterval → Duration
-
The interval between repeated increment/decrement actions during a long press.
final
- margin → EdgeInsetsGeometry?
-
The external margin around the widget.
final
- maxQuantity → int?
-
The maximum allowed quantity.
final
- minValue → int?
-
The minimum allowed quantity.
final
- onChanged → ValueUpdate?
-
A callback function that is invoked whenever the quantity changes.
final
- quantity → int
-
The initial quantity to display.
final
- quantityTextStyle → TextStyle?
-
The text style for displaying the quantity.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- splashColor → Color?
-
The splash color of the buttons when tapped.
final
- splashFactory → InteractiveInkFeatureFactory?
-
The splash factory to define interaction effects.
final
- valuePadding → EdgeInsetsGeometry?
-
The padding inside the quantity display.
final
- width → double?
-
The width of the entire widget.
final
Methods
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → State< IncrementDecrementWidget> -
Creates the mutable state for this widget at a given location in the tree.
override
-
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
-
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