Refactor SearchAppBar: enhance search functionality by adding search icon and listener for search text changes

This commit is contained in:
2026-05-15 15:56:51 +02:00
parent 91a26f6c7b
commit 2141009d36
+13 -7
View File
@@ -28,15 +28,19 @@ class SearchAppBar extends StatefulWidget {
class _SearchAppBarState extends State<SearchAppBar> { class _SearchAppBarState extends State<SearchAppBar> {
late TextEditingController _searchController; late TextEditingController _searchController;
void _onSearchChanged() {
setState(() {});
}
@override @override
void initState() { void initState() {
super.initState(); super.initState();
_searchController = TextEditingController(); _searchController = TextEditingController()..addListener(_onSearchChanged);
} }
@override @override
void dispose() { void dispose() {
_searchController.removeListener(_onSearchChanged);
_searchController.dispose(); _searchController.dispose();
super.dispose(); super.dispose();
} }
@@ -79,11 +83,6 @@ class _SearchAppBarState extends State<SearchAppBar> {
hintStyle: TextStyle( hintStyle: TextStyle(
color: Colors.white.withValues(alpha: 0.5), color: Colors.white.withValues(alpha: 0.5),
), ),
prefixIcon: const Icon(
Icons.search,
color: Colors.white70,
size: 18,
),
suffixIcon: _searchController.text.isNotEmpty suffixIcon: _searchController.text.isNotEmpty
? IconButton( ? IconButton(
icon: const Icon( icon: const Icon(
@@ -100,7 +99,14 @@ class _SearchAppBarState extends State<SearchAppBar> {
minHeight: 36, minHeight: 36,
), ),
) )
: null, : const Padding(
padding: EdgeInsets.only(right: 8),
child: Icon(
Icons.search,
color: Colors.white70,
size: 18,
),
),
border: OutlineInputBorder( border: OutlineInputBorder(
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
borderSide: BorderSide( borderSide: BorderSide(