FossAutocomplete class Inputs

FossCombobox, light theme FossCombobox, dark theme

See the combobox documentation ↗ or try it live in the playground ↗.

A text field whose dropdown filters a list of suggestions as you type.

The value is the field string, reported through onChanged; picking a suggestion writes its text into the field. The items are hints, not a constraint, so the field accepts any typed value. There is no selection indicator and no multiple selection: for those, use FossCombobox.

Colors, type, and metrics come from context.fossTheme; pass a FossComboboxStyle to style for a one-off.

Customize globally by passing your own FossThemeData, or per instance through the widget's style object. There are no per-instance token props: to change color, radius, or spacing, change the theme.

See also FossSelect for selection without typing.

FossAutocomplete(
  label: 'Fruit',
  hintText: 'Type to filter',
  items: const ['Apple', 'Banana', 'Cherry'],
  onChanged: (value) => setState(() => fruit = value),
);
Inheritance

Constructors

FossAutocomplete({required List<String> items, TextEditingController? controller, FocusNode? focusNode, FossTextFieldSize size = FossTextFieldSize.md, String? label, String? hintText, String? errorText, bool enabled = true, bool showTrigger = false, bool showClear = false, Widget? startAddon, bool filter(String label, String query)?, ValueChanged<String>? onChanged, String emptyText = _defaultEmptyText, FossComboboxStyle? style, Key? key})
FossCombobox, light theme FossCombobox, dark theme
const

Properties

controller → TextEditingController?
Holds the editable text. Created and disposed internally when null.
final
emptyText → String
Caption shown when the query matches no suggestion.
final
enabled → bool
Whether the field accepts input. Disabled when false.
final
errorText → String?
When non-null, marks the field invalid and recolors its border.
final
filter → bool Function(String label, String query)?
Overrides the default case-insensitive substring match. Receives the option label and the current query.
final
focusNode → FocusNode?
Manages keyboard focus. Created and disposed internally when null.
final
hashCode → int
The hash code for this object.
no setterinherited
hintText → String?
Placeholder shown while the field is empty.
final
items → List<String>
The suggestions to filter as the user types.
final
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
label → String?
Optional label rendered above the field.
final
onChanged → ValueChanged<String>?
Called whenever the field text changes, including on a pick.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
showClear → bool
Whether to show a trailing clear button while the field is non-empty.
final
showTrigger → bool
Whether to show the trailing chevron that opens the list. Hidden by default; the list also opens on focus and typing.
final
size → FossTextFieldSize
The field height and type scale.
final
startAddon → Widget?
Optional leading widget, typically a search glyph. Icon-agnostic.
final
style → FossComboboxStyle?
Per-instance overrides layered on the theme-resolved style.
final

Methods

build(BuildContext context) → Widget
Describes the part of the user interface represented by this widget.
override
createElement() → StatelessElement
Creates a StatelessElement to manage this widget's 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
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