SearchBox constructor
const
SearchBox({
- Key? key,
- double? minWidth,
- ValueChanged<
String> ? onChanged, - VoidCallback? onEditingComplete,
- ValueChanged<
String> ? onSubmitted, - String? initialText,
- FocusNode? focusNode,
- TextEditingController? controller,
- bool autofocus = false,
- Widget placeholder = const Text("Search"),
- Widget? leading,
- Widget? trailing,
Initializes a SearchBox with flexible configuration for search inputs.
Key features include:
placeholder
: A widget (typically Text) shown when empty, customizable for context like "Search items...".leading
andtrailing
: Optional icons or buttons, e.g., search IconButton or clear IconButton.onChanged
: Invoked on every keystroke for live updates, trimming whitespace implicitly in callers like SearchButton.onSubmitted
: Triggered on enter key, passing the full input string for processing (e.g., query submission).onEditingComplete
: Called when editing ends (e.g., focus loss), useful for validation.focusNode
: External FocusNode for manual control, integrating with ArcaneFieldProvider or keyboard shortcuts.autofocus
: Enables immediate focus on render, common in SearchButton expansions.initialText
: Pre-fills the field, preserved via controller.controller
: Custom TextEditingController for advanced management, like linking to MutableText.minWidth
: Constrains the box's minimum size for layout consistency.
Usage example:
SearchBox(
autofocus: true,
leading: Icon(Icons.search),
onChanged: (query) => filterCollection(query),
placeholder: Text("Search in [Collection]"),
)
Often nested in SearchButton for toggleable UIs or used directly in Sheet for modal searches.
Implementation
const SearchBox(
{super.key,
this.minWidth,
this.onChanged,
this.onEditingComplete,
this.onSubmitted,
this.initialText,
this.focusNode,
this.controller,
this.autofocus = false,
this.placeholder = const Text("Search"),
this.leading,
this.trailing});