build method
Implementation
@override
Widget build(BuildContext context) {
return AnimatedContainer(
duration: const Duration(milliseconds: 300),
width: expanded ? widget.maxSize : 40,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
color: Theme.of(context).colorScheme.onSurface.withValues(alpha: 0.1),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Visibility(
visible: expanded,
child: Expanded(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 8),
child: TextField(
controller: widget.controller,
decoration: const InputDecoration(
border: InputBorder.none,
),
autofocus: expanded,
),
),
),
),
GestureDetector(
onTap: () => setState(() {
expanded = !expanded;
if (!expanded) {
widget.controller.clear();
}
}),
child: Padding(
padding: const EdgeInsets.fromLTRB(0, 12, 8, 12),
child: Icon(
FontAwesomeIcons.magnifyingGlass,
color: Theme.of(context)
.colorScheme
.onSurface
.withValues(alpha: 0.6),
),
),
),
],
),
);
}