Question #228MediumFlutter Basics

How to use search functionality in flutter provide me the sample code for searching in the list and providing the similar matching and exact matching data ?

#flutter

Answer

Overview

Search functionality is a critical feature in many Flutter apps. It allows users to filter data in real-time as they type.


Basic Search

dart
class SearchableList extends StatefulWidget {
  
  _SearchableListState createState() => _SearchableListState();
}

class _SearchableListState extends State<SearchableList> {
  List<String> allItems = ['Apple', 'Banana', 'Cherry'];
  List<String> filteredItems = [];
  TextEditingController _controller = TextEditingController();

  
void initState() {
    super.initState();
    filteredItems = allItems;
    _controller.addListener(_filter);
  }

  void _filter() {
    setState(() {
      filteredItems = _controller.text.isEmpty
          ? allItems
          : allItems.where((item) =>
          item.toLowerCase().contains(_controller.text.toLowerCase())).toList();
    });
  }

  
  Widget build(BuildContext context) {
    return Column(
      children: [
        TextField(controller: _controller, decoration: InputDecoration(hintText: 'Search...')),
        Expanded(child: ListView.builder(itemCount: filteredItems.length, itemBuilder: (ctx, i) => ListTile(title: Text(filteredItems[i]))))
      ],
    );
  }
}

Key Points

  • Use TextField for input
  • Filter in onChange listener
  • Use ListView.builder for results
  • Dispose TextEditingController

Best Practice: Add debouncing for async search.