// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'package:flutter/material.dart'; /// Flutter code sample for [SearchBar]. void main() => runApp(const SearchBarApp()); class SearchBarApp extends StatefulWidget { const SearchBarApp({super.key}); @override State<SearchBarApp> createState() => _SearchBarAppState(); } class _SearchBarAppState extends State<SearchBarApp> { bool isDark = false; @override Widget build(BuildContext context) { final ThemeData themeData = ThemeData(useMaterial3: true, brightness: isDark ? Brightness.dark : Brightness.light); return MaterialApp( theme: themeData, home: Scaffold( appBar: AppBar(title: const Text('Search Bar Sample')), body: Padding( padding: const EdgeInsets.all(8.0), child: SearchAnchor( builder: (BuildContext context, SearchController controller) { return SearchBar( controller: controller, padding: const MaterialStatePropertyAll<EdgeInsets>(EdgeInsets.symmetric(horizontal: 16.0)), onTap: () { controller.openView(); }, onChanged: (_) { controller.openView(); }, leading: const Icon(Icons.search), trailing: <Widget>[ Tooltip( message: 'Change brightness mode', child: IconButton( isSelected: isDark, onPressed: () { setState(() { isDark = !isDark; }); }, icon: const Icon(Icons.wb_sunny_outlined), selectedIcon: const Icon(Icons.brightness_2_outlined), ), ) ], ); }, suggestionsBuilder: (BuildContext context, SearchController controller) { return List<ListTile>.generate(5, (int index) { final String item = 'item $index'; return ListTile( title: Text(item), onTap: () { setState(() { controller.closeView(item); }); }, ); }); }), ), ), ); } }