DefaultTextField class

A customizable text field widget with search, password, and accessibility features.

DefaultTextField provides a flexible text input widget with:

  • Password visibility toggle
  • Search icon prefix
  • Country code prefix support
  • Right accessory icons
  • Multi-line support with expansion
  • Customizable styling and keyboard types

This widget automatically applies consistent styling from Utils.appConstants and provides common text field functionality needed across the application.

Example:

// Basic text field
DefaultTextField(
  hintText: 'Enter your name',
  mainController: nameController,
  onChanged: (value) => print(value),
);

// Password field
DefaultTextField(
  hintText: 'Enter password',
  isSecureText: true,
  isShowPrefixIcon: false,
  mainController: passwordController,
);

// Search field
DefaultTextField(
  hintText: 'Search...',
  keyboardType: TextInputType.text,
  inputAction: TextInputAction.search,
  onSubmitted: (query) => performSearch(query),
);

// Multi-line text area
DefaultTextField(
  hintText: 'Enter description',
  maxLines: 5,
  isShowPrefixIcon: false,
);

See also:

Inheritance
Available extensions

Constructors

DefaultTextField({Key? key, dynamic onChanged(String)?, String? hintText, FocusNode? focusValue, TextEditingController? mainController, bool enabled = true, bool isSecureText = false, bool isRightAccessoryIcon = false, bool isShowCountryCodePrefixIcon = false, bool isShowPrefixIcon = true, String imageAssetPath = "", double leftPadding = 20, double rightPadding = 20, bool expand = false, int maxLines = 1, dynamic onSubmitted(String)?, TextInputType keyboardType = TextInputType.text, TextInputAction? inputAction})
Creates a default text field widget.
const

Properties

enabled → bool
Whether the text field is enabled for input.
final
expand → bool
Whether the text field should expand to fill available vertical space.
final
focusValue → FocusNode?
FocusNode for managing keyboard focus.
final
hashCode → int
The hash code for this object.
no setterinherited
hintText → String?
Placeholder text shown when the field is empty.
final
imageAssetPath → String
Path to a custom image asset for the prefix icon.
final
inputAction → TextInputAction?
The action button to show on the keyboard.
final
isRightAccessoryIcon → bool
Whether to show a right chevron accessory icon.
final
isSecureText → bool
Whether to obscure text (for password fields).
final
isShowCountryCodePrefixIcon → bool
Whether to display country code prefix icon.
final
isShowPrefixIcon → bool
Whether to display the search icon prefix.
final
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
keyboardType → TextInputType
The type of keyboard to display.
final
leftPadding → double
Left padding of the text field.
final
mainController → TextEditingController?
Controller for reading and controlling the text content.
final
marginZero → Widget

Available on Widget, provided by the WidgetMarginX extension

no setter
maxLines → int
Maximum number of lines. Set to -1 for unlimited lines.
final
onChanged → dynamic Function(String)?
Callback function invoked when the text changes.
final
onSubmitted → dynamic Function(String)?
Callback invoked when the user submits the text.
final
paddingZero → Widget

Available on Widget, provided by the WidgetPaddingX extension

no setter
rightPadding → double
Right padding of the text field.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
sliverBox → Widget

Available on Widget, provided by the WidgetSliverBoxX extension

no setter

Methods

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

Available on Widget, provided by the WidgetMarginX extension

marginOnly({double left = 0.0, double top = 0.0, double right = 0.0, double bottom = 0.0}) → Widget

Available on Widget, provided by the WidgetMarginX extension

marginSymmetric({double horizontal = 0.0, double vertical = 0.0}) → Widget

Available on Widget, provided by the WidgetMarginX extension

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
paddingAll(double padding) → Widget

Available on Widget, provided by the WidgetPaddingX extension

paddingOnly({double left = 0.0, double top = 0.0, double right = 0.0, double bottom = 0.0}) → Widget

Available on Widget, provided by the WidgetPaddingX extension

paddingSymmetric({double horizontal = 0.0, double vertical = 0.0}) → Widget

Available on Widget, provided by the WidgetPaddingX extension

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