ControlledChipInput<T> constructor
const
ControlledChipInput<T> ({
- Key? key,
- ChipInputController<
T> ? controller, - List<
T> initialValue = const [], - ValueChanged<
List< ? onChanged,T> > - bool enabled = true,
- TextEditingController? textEditingController,
- BoxConstraints? popoverConstraints,
- UndoHistoryController? undoHistoryController,
- ValueChanged<
String> ? onSubmitted, - String? initialText,
- FocusNode? focusNode,
- List<
T> suggestions = const [], - List<
T> chips = const [], - List<
TextInputFormatter> ? inputFormatters, - void onSuggestionChoosen(
- int index
- required ChipWidgetBuilder<
T> chipBuilder, - ChipWidgetBuilder<
T> ? suggestionBuilder, - bool? useChips,
- TextInputAction? textInputAction,
- Widget? placeholder,
- Widget suggestionLeadingBuilder(
- BuildContext,
- T
- Widget suggestionTrailingBuilder(
- BuildContext,
- T
- Widget? inputTrailingWidget,
Creates a ControlledChipInput with comprehensive customization options.
The chipBuilder
parameter is required as it defines how chips are visually
represented. Either controller
or onChanged
should be provided for
interactivity, depending on the preferred state management approach.
Parameters:
controller
(ChipInputControllerinitialValue
(ListonChanged
(ValueChanged<Listenabled
(bool, default: true): whether input is interactivechipBuilder
(ChipWidgetBuildersuggestions
(ListsuggestionBuilder
(ChipWidgetBuilderuseChips
(bool?, optional): override chip rendering modeplaceholder
(Widget?, optional): empty state placeholder widgetundoHistoryController
(UndoHistoryController?, optional): undo/redo controller for text inputonSubmitted
(ValueChangedinitialText
(String?, optional): initial text value for input fieldfocusNode
(FocusNode?, optional): focus node for input fieldinputFormatters
(ListtextInputAction
(TextInputAction?, optional): keyboard action buttonsuggestionLeadingBuilder
(Widget Function(BuildContext, T)?, optional): leading widget builder for suggestionssuggestionTrailingBuilder
(Widget Function(BuildContext, T)?, optional): trailing widget builder for suggestionsinputTrailingWidget
(Widget?, optional): trailing widget for input field
Example:
ControlledChipInput<String>(
controller: controller,
chipBuilder: (context, chip) => Chip(
label: Text(chip),
onDeleted: () => controller.remove(chip),
),
suggestions: ['apple', 'banana', 'cherry'],
placeholder: Text('Type to add fruits...'),
undoHistoryController: myUndoController,
onSubmitted: (text) => print('Submitted: $text'),
initialText: 'Start typing...',
focusNode: myFocusNode,
inputFormatters: [myFormatter],
textInputAction: TextInputAction.done,
suggestionLeadingBuilder: (context, chip) => Icon(Icons.star),
suggestionTrailingBuilder: (context, chip) => Icon(Icons.close),
inputTrailingWidget: Icon(Icons.add),
)
Implementation
const ControlledChipInput({
super.key,
this.controller,
this.initialValue = const [],
this.onChanged,
this.enabled = true,
this.textEditingController,
this.popoverConstraints,
this.undoHistoryController,
this.onSubmitted,
this.initialText,
this.focusNode,
this.suggestions = const [],
this.chips = const [],
this.inputFormatters,
this.onSuggestionChoosen,
required this.chipBuilder,
this.suggestionBuilder,
this.useChips,
this.textInputAction,
this.placeholder,
this.suggestionLeadingBuilder,
this.suggestionTrailingBuilder,
this.inputTrailingWidget,
});