CustomInput class

Extension methods for Iterable<Widget> to insert separators between items. A highly customizable text input field with support for leading and trailing widgets.

The CustomInput widget provides a fully-featured text input field with comprehensive styling options, placeholder support, and advanced text editing capabilities.

Inheritance
Available extensions

Constructors

CustomInput({Key? key, String? initialValue, Widget? placeholder, TextEditingController? controller, FocusNode? focusNode, BoxDecoration? decoration, UndoHistoryController? undoController, TextInputType? keyboardType, TextInputAction? textInputAction, TextCapitalization textCapitalization = TextCapitalization.none, TextStyle? style, StrutStyle? strutStyle, TextAlign textAlign = TextAlign.start, TextDirection? textDirection, bool readOnly = false, bool? showCursor, bool autofocus = false, String obscuringCharacter = '•', bool obscureText = false, bool autocorrect = true, SmartDashesType? smartDashesType, SmartQuotesType? smartQuotesType, bool enableSuggestions = true, int? maxLines = 1, int? minLines, bool expands = false, int? maxLength, MaxLengthEnforcement? maxLengthEnforcement, ValueChanged<String>? onChanged, VoidCallback? onEditingComplete, ValueChanged<String>? onSubmitted, AppPrivateCommandCallback? onAppPrivateCommand, List<TextInputFormatter>? inputFormatters, bool enabled = true, double? cursorWidth, double? cursorHeight, Radius? cursorRadius, bool? cursorOpacityAnimates, Color? cursorColor, BoxHeightStyle selectionHeightStyle = ui.BoxHeightStyle.tight, BoxWidthStyle selectionWidthStyle = ui.BoxWidthStyle.tight, Brightness? keyboardAppearance, EdgeInsets scrollPadding = const EdgeInsets.all(20), DragStartBehavior dragStartBehavior = DragStartBehavior.start, bool? enableInteractiveSelection, TextSelectionControls? selectionControls, GestureTapCallback? onPressed, bool onPressedAlwaysCalled = false, TapRegionCallback? onPressedOutside, MouseCursor? mouseCursor, ScrollController? scrollController, ScrollPhysics? scrollPhysics, Iterable<String>? autofillHints = const <String>[], ContentInsertionConfiguration? contentInsertionConfiguration, Clip clipBehavior = Clip.hardEdge, String? restorationId, bool scribbleEnabled = true, bool enableIMEPersonalizedLearning = true, EditableTextContextMenuBuilder? contextMenuBuilder, SpellCheckConfiguration? spellCheckConfiguration, TextMagnifierConfiguration magnifierConfiguration = TextMagnifierConfiguration.disabled, Color? selectionColor, EdgeInsetsGeometry? padding, Widget? leading, Widget? trailing, MainAxisAlignment? mainAxisAlignment, CrossAxisAlignment? crossAxisAlignment, TextStyle? placeholderStyle, AlignmentGeometry? alignment, AlignmentGeometry? placeholderAlignment, EdgeInsetsGeometry? inputPadding, double? gap, BoxConstraints? constraints, bool stylusHandwritingEnabled = EditableText.defaultStylusHandwritingEnabled, Object? groupId, EdgeInsetsGeometry? scrollbarPadding, WidgetBuilder? keyboardToolbarBuilder, Widget? top, Widget? bottom, ValueChanged<int>? onLineCountChange, Size? editableTextSize, double? verticalGap, CustomInputTheme? theme})
Creates a CustomInput widget.
const

Properties

alignment → AlignmentGeometry?
Alignment of the input field within its container.
final
autocorrect → bool
Whether to enable automatic correction.
final
autofillHints → Iterable<String>?
Hints for autofill services.
final
autofocus → bool
Whether this text field should focus itself if nothing else is already focused.
final
bottom → Widget?
Widget displayed below the input field.
final
box → Container

Available on Widget, provided by the WidgetToBox extension

no setter
clipBehavior → Clip
How to clip the text field during painting.
final
constraints → BoxConstraints?
Constraints applied to the input field.
final
contentInsertionConfiguration → ContentInsertionConfiguration?
Configuration for content insertion.
final
contextMenuBuilder → EditableTextContextMenuBuilder?
Builder for the context menu.
final
controller → TextEditingController?
Controls the text being edited.
final
crossAxisAlignment → CrossAxisAlignment?
Cross axis alignment for the input row.
final
cursorColor → Color?
The color of the cursor.
final
cursorHeight → double?
The height of the cursor.
final
cursorOpacityAnimates → bool?
Whether the cursor will animate from fully transparent to fully opaque.
final
cursorRadius → Radius?
The radius of the cursor.
final
cursorWidth → double?
The width of the cursor.
final
decoration → BoxDecoration?
Visual decoration for the input field.
final
dragStartBehavior → DragStartBehavior
Determines the way drag start behavior is handled.
final
editableTextSize → Size?
Size of the underlying EditableText widget.
final
enabled → bool
Whether the text field is interactive.
final
enableIMEPersonalizedLearning → bool
Whether IME personalized learning is enabled.
final
enableInteractiveSelection → bool
Whether to enable user interface affordances for changing the text selection.
final
enableSuggestions → bool
Whether to enable suggestions for the current input.
final
expands → bool
Whether the text field expands to fill available vertical space.
final
focusNode → FocusNode?
Controls whether this text field has keyboard focus.
final
gap → double?
Gap between the input field and its leading/trailing widgets.
final
groupId → Object?
Identifier for grouping multiple text fields.
final
hashCode → int
The hash code for this object.
no setterinherited
initialValue → String?
The initial text value of the input field.
final
inputFormatters → List<TextInputFormatter>?
Optional input validation and formatting.
final
inputPadding → EdgeInsetsGeometry?
Padding around the editable text within the input field.
final
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
keyboardAppearance → Brightness?
The brightness of the keyboard.
final
keyboardToolbarBuilder → WidgetBuilder?
Builder for the custom keyboard toolbar.
final
keyboardType → TextInputType
The type of keyboard to display for text input.
final
leading → Widget?
Widget displayed before the input field.
final
magnifierConfiguration → TextMagnifierConfiguration
Configuration for the magnifier.
final
mainAxisAlignment → MainAxisAlignment?
Main axis alignment for the input row.
final
maxLength → int?
The maximum number of characters (Unicode scalar values) to allow.
final
maxLengthEnforcement → MaxLengthEnforcement?
Determines how the maxLength limit should be enforced.
final
maxLines → int?
The maximum number of lines for the text to span.
final
minLines → int?
The minimum number of lines to occupy.
final
mouseCursor → MouseCursor?
The cursor for a mouse pointer when it enters or is hovering over the widget.
final
obscureText → bool
Whether to hide the text being edited.
final
obscuringCharacter → String
Character used for obscuring text when obscureText is true.
final
onAppPrivateCommand → AppPrivateCommandCallback?
Called for private commands from the input method.
final
onChanged → ValueChanged<String>?
Called when the text being edited changes.
final
onEditingComplete → VoidCallback?
Called when the user submits editable content.
final
onLineCountChange → ValueChanged<int>?
Called when the line count changes.
final
onPressed → VoidCallback?
Called when the input field is tapped.
final
onPressedAlwaysCalled → bool
Whether onPressed should always be called.
final
onPressedOutside → TapRegionCallback?
Called when tapping outside the input field.
final
onSubmitted → ValueChanged<String>?
Called when the user indicates they are done editing.
final
padding → EdgeInsetsGeometry?
Padding around the entire input field.
final
placeholder → Widget?
The placeholder widget displayed when the input is empty.
final
placeholderAlignment → AlignmentGeometry?
Alignment of the placeholder within the input field.
final
placeholderStyle → TextStyle?
Text style for the placeholder.
final
readOnly → bool
Whether the text field should be read-only.
final
restorationId → String?
Restoration ID for state restoration.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
scribbleEnabled → bool
Whether scribble input is enabled.
final
scrollbarPadding → EdgeInsetsGeometry?
The color and size of the scrollbar thumb.
final
scrollController → ScrollController?
Controls the scroll position of the text field.
final
scrollPadding → EdgeInsets
How much space to place around the text when scrolling.
final
scrollPhysics → ScrollPhysics?
The physics of the scrollable text field.
final
selectionColor → Color?
The color of the text selection highlight.
final
selectionControls → TextSelectionControls?
Optional delegate for building the text selection handles and toolbar.
final
selectionEnabled → bool
Whether text selection is enabled.
no setter
selectionHeightStyle → BoxHeightStyle
The height style of the selection highlight.
final
selectionWidthStyle → BoxWidthStyle
The width style of the selection highlight.
final
showCursor → bool?
Whether to show the cursor.
final
smartDashesType → SmartDashesType
Smart dashes behavior for the input.
final
smartQuotesType → SmartQuotesType
Smart quotes behavior for the input.
final
spellCheckConfiguration → SpellCheckConfiguration?
Configuration for spell checking.
final
strutStyle → StrutStyle?
The strut style to use for the text being edited.
final
style → TextStyle?
The style to use for the text being edited.
final
stylusHandwritingEnabled → bool
Whether stylus handwriting is enabled.
final
textAlign → TextAlign
How the text should be aligned horizontally.
final
textCapitalization → TextCapitalization
Configures how the platform keyboard capitalizes text.
final
textDirection → TextDirection?
The directionality of the text.
final
textInputAction → TextInputAction?
The action button on the keyboard.
final
theme → CustomInputTheme?
Theme configuration for the input field.
final
top → Widget?
Widget displayed above the input field.
final
trailing → Widget?
Widget displayed after the input field.
final
undoController → UndoHistoryController?
Controls undo and redo operations.
final
verticalGap → double?
Gap between the input field and its top/bottom widgets.
final

Methods

aligned([AlignmentGeometry alignment = Alignment.center]) → Widget

Available on Widget, provided by the WidgetStackExtensions extension

Wraps the widget in an Align widget
asColumn({MainAxisAlignment mainAxisAlignment = MainAxisAlignment.start}) → Widget

Available on Widget, provided by the ColumnWidget extension

blurEffect({double blur = 10.0, double borderRadius = 12.0, Border? border, Color? tint, Gradient? gradient, List<BoxShadow>? shadow, Clip clipBehavior = Clip.antiAlias, EdgeInsetsGeometry? padding}) → Widget

Available on Widget, provided by the BlurEffectWidget extension

center() → Widget

Available on Widget, provided by the CenterWidget extension

centered() → Widget

Available on Widget, provided by the WidgetStackExtensions extension

Wraps the widget in a Center widget
circular({double radius = 50.0, Color? color, BoxFit fit = BoxFit.cover}) → Widget

Available on Widget, provided by the CircularWidget extension

createElement() → StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() → State<CustomInput>
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
onTap(void onTap()) → Widget

Available on Widget, provided by the OnTapGesture extension

positioned({double? top, double? left, double? right, double? bottom, double? width, double? height}) → Widget

Available on Widget, provided by the WidgetStackExtensions extension

Places the widget inside a Stack using Positioned If any values are null, it behaves as partially positioned.
positionedFill() → Widget

Available on Widget, provided by the WidgetStackExtensions extension

Wraps the widget in a Positioned.fill
positionedFromRect(Rect rect) → Widget

Available on Widget, provided by the WidgetStackExtensions extension

Wraps in a Positioned.fromRect (helper for Rect positioning)
rounded({double borderRadius = 16.0, Color? color, BoxFit fit = BoxFit.cover}) → Widget

Available on Widget, provided by the RoundedWidget extension

scrollable({Axis scrollDirection = Axis.vertical, bool reverse = false, EdgeInsetsGeometry? padding, bool primary = false, ScrollPhysics? physics, ScrollController? controller, Clip clipBehavior = Clip.hardEdge, String? restorationId, Key? key}) → Widget

Available on Widget, provided by the ScrollableWidget extension

sizedBox({double? width, double? height}) → Widget

Available on Widget, provided by the SizedBoxWidget extension

stackedWith(List<Widget> children, {AlignmentGeometry alignment = Alignment.topLeft, StackFit fit = StackFit.loose, Clip clipBehavior = Clip.hardEdge}) → Widget

Available on Widget, provided by the WidgetStackExtensions extension

Wraps the widget in a Stack with other children
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
visible(bool visible) → Widget

Available on Widget, provided by the VisibilityWidget extension

withAnimatedOpacity({required double opacity, required Duration duration, required Curve curve}) → Widget

Available on Widget, provided by the AnimatedOpacityWidget extension

withBorderRadius(BorderRadius borderRadius) → Widget

Available on Widget, provided by the BorderRadiusWidget extension

withBoxShadow({Color color = Colors.black, double offsetX = 0.0, double offsetY = 2.0, double blurRadius = 6.0}) → Widget

Available on Widget, provided by the ShadowWidget extension

withDecoration(BoxDecoration decoration) → Widget

Available on Widget, provided by the DecorationWidget extension

withMargin(EdgeInsetsGeometry margin) → Widget

Available on Widget, provided by the MarginWidget extension

withPadding(EdgeInsetsGeometry padding) → Widget

Available on Widget, provided by the PaddingWidget extension

withShape(ShapeBorder shape) → Widget

Available on Widget, provided by the ShapeWidget extension

withTooltip(String message) → Widget

Available on Widget, provided by the TooltipWidget extension

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Constants

noMaxLength → const int
Constant representing no maximum length for the input.