Advertisement
Hevernooo

Делегации

Nov 19th, 2024 (edited)
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 5.34 KB | None | 0 0
  1. class CustomSearchDelegateFerns extends SearchDelegate {
  2.  
  3.   @override
  4.   List<Widget> buildActions(BuildContext context) {
  5.     return [
  6.       IconButton(
  7.           onPressed: (){
  8.             query = '';
  9.           },
  10.           icon: const Icon(Icons.clear))
  11.     ];
  12.   }
  13.  
  14.   @override
  15.   Widget buildLeading(BuildContext context) {
  16.     return IconButton(
  17.         onPressed: (){
  18.           close(context, null);
  19.         },
  20.         icon: const Icon(Icons.arrow_back)
  21.     );
  22.   }
  23.  
  24.   List<String> searchTermsName = [
  25.     'Адиантум венерин волос',
  26.     'Адиантум хвостатый',
  27.     'Адиантум стоповидный',
  28.     'Птерис критский',
  29.     'Птерис мечевидный',
  30.     'Блехнум',
  31.     'Нефролепис сердцелистный',
  32.     'Нефролепис мечевидный',
  33.     'Нефролепис возвышенный',
  34.     'Асплениум гнездовой',
  35.     'Асплениум луковиценосный',
  36.     'Асплениум двуформенный',
  37.     'Циртомиум серповидный',
  38.     'Даваллия канарская',
  39.     'Даваллия рассечённая',
  40.   ];
  41.  
  42.   List<String> searchTermsImage = [
  43.     'https://cdn.botanichka.ru/wp-content/uploads/2009/11/Adiantum-capillus-veneris-3-1-210x210.jpg',
  44.     'https://i.pinimg.com/736x/68/9d/bb/689dbbc3500b965a0e4add738a2990ad.jpg',
  45.     'https://i.pinimg.com/736x/bb/35/b6/bb35b645ad0bb170d46e23ce5471d063.jpg',
  46.     'https://cdn.100sp.ru/pictures/351388381',
  47.     'https://i.etsystatic.com/20406392/r/il/a18300/2509424111/il_794xN.2509424111_fif3.jpg',
  48.     'https://cdn.botanichka.ru/wp-content/uploads/2017/09/Blechnum-03-640x800.jpg',
  49.     'https://cdn.botanichka.ru/wp-content/uploads/2010/04/Nephrolepis_cordifolia_03-640x825.jpg',
  50.     'https://cdn.botanichka.ru/wp-content/uploads/2010/04/Nephrolepis_biserrata_1-640x853.jpg',
  51.     'https://cdn.botanichka.ru/wp-content/uploads/2010/04/Nephrolepis_exaltata_01-640x853.jpg',
  52.     'https://i.pinimg.com/564x/c0/a8/17/c0a8178fe01b66f687df4cfd1e1c8371.jpg',
  53.     'https://bloom-story.ru/wa-data/public/shop/products/04/27/2704/images/6536/6536.750.jpg',
  54.     'https://www.gardentags.com/profile/elicia/images/327842/750/asplenium-dimorphum-x-difforme.jpeg',
  55.     'https://cvetpodokonnik.ru/wa-data/public/shop/products/96/07/796/images/2302/2302.970.jpg',
  56.     'https://klau.club/uploads/posts/2023-03/thumbs/1677622360_klau-club-p-davana-rastenie-krasivo-23.png',
  57.     'https://i5.walmartimages.com/asr/db453a16-9cba-482c-acf7-95d28963df2b_1.a26702021d8199000def5af913252372.jpeg',
  58.   ];
  59.  
  60.   List<String> searchTermsSubName = [
  61.     'Adiantum capillus-veneris',
  62.     'Adiantum caudatum',
  63.     'Adiantum pedatum',
  64.     'Pteris cretica',
  65.     'Pteris ensiformis',
  66.     'Blechnum spicant',
  67.     'Nephrolepis cordifolia',
  68.     'Nephrolepis biserrata',
  69.     'Nephrolepis exaltata',
  70.     'Asplenium nidus',
  71.     'Asplenium bulbiferum',
  72.     'Asplenium dimorphum',
  73.     'Cyrtomium falcatum',
  74.     'Davallia canariensis',
  75.     'Davallia dissecta',
  76.   ];
  77.  
  78.   @override
  79.   Widget buildResults(BuildContext context) {
  80.     List<String> matchQueryName = [];
  81.     List<String> matchQueryImage = [];
  82.     List<String> matchQuerySubName = [];
  83.     int i = 0;
  84.     for (var fruit in searchTermsName) {
  85.       if (fruit.toLowerCase().contains(query.toLowerCase())){
  86.         matchQueryName.add(fruit);
  87.         matchQueryImage.add(searchTermsImage[i]);
  88.         matchQuerySubName.add(searchTermsSubName[i]);
  89.       }
  90.       i++;
  91.     }
  92.     int z = 0;
  93.     for (var fruit in searchTermsSubName) {
  94.       if (fruit.toLowerCase().contains(query.toLowerCase())){
  95.         matchQueryName.add(searchTermsName[z]);
  96.         matchQueryImage.add(searchTermsImage[z]);
  97.         matchQuerySubName.add(searchTermsSubName[z]);
  98.       }
  99.       z++;
  100.     }
  101.     return ListView.builder(
  102.         itemCount: matchQueryName.length,
  103.         itemBuilder: (context, index){
  104.           var name = matchQueryName[index];
  105.           var image = matchQueryImage[index];
  106.           var subName = matchQuerySubName[index];
  107.           return elements(ElementName: name, ElementSubName: subName, ElementImage: image);
  108.         }
  109.     );
  110.   }
  111.  
  112.   @override
  113.   Widget buildSuggestions(BuildContext context) {
  114.     List<String> matchQueryName = [];
  115.     List<String> matchQueryImage = [];
  116.     List<String> matchQuerySubName = [];
  117.     int i = 0;
  118.     for (var fruit in searchTermsName) {
  119.       if (fruit.toLowerCase().contains(query.toLowerCase())){
  120.         matchQueryName.add(fruit);
  121.         matchQueryImage.add(searchTermsImage[i]);
  122.         matchQuerySubName.add(searchTermsSubName[i]);
  123.       }
  124.       i++;
  125.     }
  126.     int z = 0;
  127.     for (var fruit in searchTermsSubName) {
  128.       if (fruit.toLowerCase().contains(query.toLowerCase())){
  129.         matchQueryName.add(searchTermsName[z]);
  130.         matchQueryImage.add(searchTermsImage[z]);
  131.         matchQuerySubName.add(searchTermsSubName[z]);
  132.       }
  133.       z++;
  134.     }
  135.     return ListView.builder(
  136.       itemBuilder: (context, index){
  137.         var name = matchQueryName[index];
  138.         var image = matchQueryImage[index];
  139.         var subName = matchQuerySubName[index];
  140.         return elements(ElementName: name, ElementSubName: subName, ElementImage: image);
  141.       },
  142.       itemCount: query == '' ? matchQueryName.length ~/ 2 : matchQueryName.length,
  143.     );
  144.   }
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement