InputFeature class abstract

Abstract factory for creating input field feature components.

Provides factory constructors for common text field features like password toggles, clear buttons, hints, autocomplete, and spinners. Features can be conditionally shown based on field state using InputFeatureVisibility.

Example:

TextField(
  leading: [
    InputFeature.hint(
      popupBuilder: (context) => Text('Enter email'),
    ),
  ],
  trailing: [
    InputFeature.clear(),
    InputFeature.passwordToggle(),
  ],
)
Implementers

Constructors

InputFeature({InputFeatureVisibility visibility = InputFeatureVisibility.always, bool skipFocusTraversal = true})
Creates an input feature.
const
InputFeature.above(Widget? child, {InputFeatureVisibility visibility, bool skipFocusTraversal})
Creates a custom widget feature displayed above the input text.
const
factory
InputFeature.autoComplete({InputFeatureVisibility visibility, required SuggestionBuilder querySuggestions, required Widget child, BoxConstraints? popoverConstraints, PopoverConstraint? popoverWidthConstraint, AlignmentDirectional? popoverAnchorAlignment, AlignmentDirectional? popoverAlignment, AutoCompleteMode mode, bool skipFocusTraversal})
Creates an autocomplete feature.
const
factory
InputFeature.below(Widget? child, {InputFeatureVisibility visibility, bool skipFocusTraversal})
Creates a custom widget feature displayed below the input text.
const
factory
InputFeature.clear({InputFeatureVisibility visibility, InputFeaturePosition position, Widget? icon, bool skipFocusTraversal})
Creates a clear text button feature.
const
factory
InputFeature.copy({InputFeatureVisibility visibility, InputFeaturePosition position, Widget? icon, bool skipFocusTraversal})
Creates a copy to clipboard button feature.
const
factory
InputFeature.decrementButton({InputFeatureVisibility visibility, InputFeaturePosition position, double step, double? invalidValue, double? min, double? max, Widget? icon, bool skipFocusTraversal})
Creates a decrement button feature for numeric inputs.
const
factory
InputFeature.hint({InputFeatureVisibility visibility, required WidgetBuilder popupBuilder, Widget? icon, InputFeaturePosition position, bool enableShortcuts, bool skipFocusTraversal})
Creates a hint/tooltip feature for the input field.
const
factory
InputFeature.incrementButton({InputFeatureVisibility visibility, InputFeaturePosition position, double step, double? invalidValue, double? min, double? max, Widget? icon, bool skipFocusTraversal})
Creates an increment button feature for numeric inputs.
const
factory
InputFeature.leading(Widget child, {InputFeatureVisibility visibility, bool skipFocusTraversal})
Creates a custom leading widget feature.
const
factory
InputFeature.passwordToggle({InputFeatureVisibility visibility, PasswordPeekMode mode, InputFeaturePosition position, Widget? icon, Widget? iconShow, bool skipFocusTraversal})
Creates a password visibility toggle feature.
const
factory
InputFeature.paste({InputFeatureVisibility visibility, InputFeaturePosition position, Widget? icon, bool skipFocusTraversal})
Creates a paste from clipboard button feature.
const
factory
InputFeature.revalidate({InputFeatureVisibility visibility, InputFeaturePosition position, Widget? icon, bool skipFocusTraversal})
Creates a revalidate button feature.
const
factory
InputFeature.spinner({InputFeatureVisibility visibility, double step, bool enableGesture, double? invalidValue, double? min, double? max, bool skipFocusTraversal})
Creates a numeric spinner feature for incrementing/decrementing values.
const
factory
InputFeature.trailing(Widget child, {InputFeatureVisibility visibility, bool skipFocusTraversal})
Creates a custom trailing widget feature.
const
factory

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
skipFocusTraversal bool
Whether to skip this feature in focus traversal.
final
visibility InputFeatureVisibility
Visibility mode for this input feature.
final

Methods

createState() InputFeatureState<InputFeature>
Creates the state for this input feature.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

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

Static Methods

canUpdate(InputFeature oldFeature, InputFeature newFeature) bool
Checks if an old feature can be updated to a new feature.