| // 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 [Autocomplete]. | 
 |  | 
 | void main() => runApp(const AutocompleteExampleApp()); | 
 |  | 
 | class AutocompleteExampleApp extends StatelessWidget { | 
 |   const AutocompleteExampleApp({super.key}); | 
 |  | 
 |   @override | 
 |   Widget build(BuildContext context) { | 
 |     return MaterialApp( | 
 |       home: Scaffold( | 
 |         appBar: AppBar( | 
 |           title: const Text('Autocomplete Basic'), | 
 |         ), | 
 |         body: Center( | 
 |           child: Column( | 
 |             mainAxisAlignment: MainAxisAlignment.center, | 
 |             children: <Widget>[ | 
 |               Text('Type below to autocomplete the following possible results: ${AutocompleteBasicExample._kOptions}.'), | 
 |               const AutocompleteBasicExample(), | 
 |             ], | 
 |           ), | 
 |         ), | 
 |       ), | 
 |     ); | 
 |   } | 
 | } | 
 |  | 
 | class AutocompleteBasicExample extends StatelessWidget { | 
 |   const AutocompleteBasicExample({super.key}); | 
 |  | 
 |   static const List<String> _kOptions = <String>[ | 
 |     'aardvark', | 
 |     'bobcat', | 
 |     'chameleon', | 
 |   ]; | 
 |  | 
 |   @override | 
 |   Widget build(BuildContext context) { | 
 |     return Autocomplete<String>( | 
 |       optionsBuilder: (TextEditingValue textEditingValue) { | 
 |         if (textEditingValue.text == '') { | 
 |           return const Iterable<String>.empty(); | 
 |         } | 
 |         return _kOptions.where((String option) { | 
 |           return option.contains(textEditingValue.text.toLowerCase()); | 
 |         }); | 
 |       }, | 
 |       onSelected: (String selection) { | 
 |         debugPrint('You just selected $selection'); | 
 |       }, | 
 |     ); | 
 |   } | 
 | } |