Refactor SearchAppBar: enhance search functionality by adding search icon and listener for search text changes
This commit is contained in:
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user