Advertisement
Hevernooo

Главная

Nov 19th, 2024
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 18.86 KB | None | 0 0
  1. import 'package:flutter/cupertino.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:flutter/painting.dart';
  4. import 'package:flutter/widgets.dart';
  5. import 'package:plantual_1/scenes/delegates.dart';
  6.  
  7. class primary extends StatefulWidget {
  8.   const primary({super.key});
  9.  
  10.   @override
  11.   State<primary> createState() => _primaryState();
  12. }
  13.  
  14. class _primaryState extends State<primary> {
  15.   @override
  16.   Widget build(BuildContext context) {
  17.     double top = MediaQuery.of(context).size.width * 0.025;
  18.     return SafeArea(
  19.         child: SingleChildScrollView(
  20.           scrollDirection: Axis.vertical,
  21.           child: Column(
  22.             children: [
  23.               Row(
  24.                 mainAxisAlignment: MainAxisAlignment.spaceAround,
  25.                 children: [
  26.                   Column(
  27.                     children: [
  28.                       Padding(padding: EdgeInsets.only(top: top)),
  29.                       _climbing(),
  30.                       Padding(padding: EdgeInsets.only(top: top)),
  31.                       _ferns(),
  32.                       Padding(padding: EdgeInsets.only(top: top)),
  33.                       _fruits()
  34.                     ],
  35.                   ),
  36.                   Column(
  37.                     children: [
  38.                       Padding(padding: EdgeInsets.only(top: top)),
  39.                       _bonsai(),
  40.                       Padding(padding: EdgeInsets.only(top: top)),
  41.                       _flowering(),
  42.                       Padding(padding: EdgeInsets.only(top: top)),
  43.                       _orhids()
  44.                     ],
  45.                   )
  46.                 ],
  47.               ),
  48.               Padding(padding: EdgeInsets.only(top: top)),
  49.               _palms()
  50.             ],
  51.           ),
  52.         )
  53.     );
  54.   }
  55. }
  56.  
  57. class CustomSearchDelegateAll extends SearchDelegate {
  58.  
  59.   @override
  60.   List<Widget> buildActions(BuildContext context) {
  61.     return [
  62.       IconButton(
  63.           onPressed: (){
  64.             query = '';
  65.           },
  66.           icon: const Icon(Icons.clear))
  67.     ];
  68.   }
  69.  
  70.   @override
  71.   Widget buildLeading(BuildContext context) {
  72.     return IconButton(
  73.         onPressed: (){
  74.           close(context, null);
  75.         },
  76.         icon: const Icon(Icons.arrow_back)
  77.     );
  78.   }
  79.  
  80.   List<String> searchTermsName = [
  81.   'Адиантум венерин волос',
  82.   'Адиантум хвостатый',
  83.   'Адиантум стоповидный',
  84.   'Птерис критский',
  85.   'Птерис мечевидный',
  86.   'Блехнум',
  87.   'Нефролепис сердцелистный',
  88.   'Нефролепис мечевидный',
  89.   'Нефролепис возвышенный',
  90.   'Асплениум гнездовой',
  91.   'Асплениум луковиценосный',
  92.   'Асплениум двуформенный',
  93.   'Циртомиум серповидный',
  94.   'Даваллия канарская',
  95.   'Даваллия рассечённая',
  96.  
  97.   'Эпипремнум золотистый',
  98.   'Филодендрон лазящий',
  99.   'Плющ обыкновенный',
  100.   'Хойя карноза',
  101.   'Ипомея пурпурная',
  102.   'Клеродендрум Томпсона',
  103.   'Пассифлора голубая',
  104.   'Пассифлора инкарната',
  105.   'Померанец',
  106.   'Лайм',
  107.   'Лимон',
  108.   'Мандарин',
  109.   'Банан райский',
  110.   'Гранат обыкновенный',
  111.   'Олива европейская',
  112.   'Абрикос обыкновенный',
  113.   'Авокадо',
  114.   'Физалис обыкновенный',
  115.  
  116.   'Фаленопсис "Золотой Император"',
  117.   'Фаленопсис "Голден Бьюти"',
  118.   'Фаленопсис Шиллера',
  119.   'Фаленопсис Линдени',
  120.   'Мильтония',
  121.   'Ванда голубая',
  122.   'Ванда трёхцветная',
  123.   'Ванда сандериана',
  124.   'Дендробиум благородный',
  125.   'Дендробиум монилоформе',
  126.   'Дендробиум фаленопсис',
  127.   'Дендробиум Париша',
  128.   'Дендробиум первоцветный',
  129.   'Дендробиум густоцветный',
  130.   'Дендробиум Линдли',
  131.   'Цимбидиум мечелистный',
  132.   'Цимбидиум Лоу',
  133.   'Хвост пони',
  134.   'Хамедорея изящная',
  135.   'Саговая пальма',
  136.   'Хамедорея Сейфризи',
  137.   'Арека катеху',
  138.   'Ливистона китайская',
  139.   'Узамбарская фиалка',
  140.   'Антуриум Шерцера',
  141.   'Бегония клубневая',
  142.   'Пентас ланцетный',
  143.   'Гиппеаструм',
  144.   'Абутилон',
  145.   'Рододендрон',
  146.   'Мандевилла Сандера',
  147.   'Акалифа',
  148.   'Зантоксилум',
  149.   'Фикус микрокарпа',
  150.   'Эреция мелколистная',
  151.   'Бересклет японский',
  152.   'Сизигиум метельчатый'
  153.   ];
  154.  
  155.   List<String> searchTermsImage = [
  156.     'https://cdn.botanichka.ru/wp-content/uploads/2009/11/Adiantum-capillus-veneris-3-1-210x210.jpg',
  157.     'https://i.pinimg.com/736x/68/9d/bb/689dbbc3500b965a0e4add738a2990ad.jpg',
  158.     'https://i.pinimg.com/736x/bb/35/b6/bb35b645ad0bb170d46e23ce5471d063.jpg',
  159.     'https://cdn.100sp.ru/pictures/351388381',
  160.     'https://i.etsystatic.com/20406392/r/il/a18300/2509424111/il_794xN.2509424111_fif3.jpg',
  161.     'https://cdn.botanichka.ru/wp-content/uploads/2017/09/Blechnum-03-640x800.jpg',
  162.     'https://cdn.botanichka.ru/wp-content/uploads/2010/04/Nephrolepis_cordifolia_03-640x825.jpg',
  163.     'https://cdn.botanichka.ru/wp-content/uploads/2010/04/Nephrolepis_biserrata_1-640x853.jpg',
  164.     'https://cdn.botanichka.ru/wp-content/uploads/2010/04/Nephrolepis_exaltata_01-640x853.jpg',
  165.     'https://i.pinimg.com/564x/c0/a8/17/c0a8178fe01b66f687df4cfd1e1c8371.jpg',
  166.     'https://bloom-story.ru/wa-data/public/shop/products/04/27/2704/images/6536/6536.750.jpg',
  167.     'https://www.gardentags.com/profile/elicia/images/327842/750/asplenium-dimorphum-x-difforme.jpeg',
  168.     'https://cvetpodokonnik.ru/wa-data/public/shop/products/96/07/796/images/2302/2302.970.jpg',
  169.     'https://klau.club/uploads/posts/2023-03/thumbs/1677622360_klau-club-p-davana-rastenie-krasivo-23.png',
  170.     'https://i5.walmartimages.com/asr/db453a16-9cba-482c-acf7-95d28963df2b_1.a26702021d8199000def5af913252372.jpeg',
  171.  
  172.     'https://i.pinimg.com/736x/65/93/1c/65931c1b68d481adc57f6f405ce36b2a.jpg',
  173.     'https://azbyka.ru/garden/wp-content/uploads/2022/12/filodendron-plyushhevidnyj-e1671210895739-768x768.jpg',
  174.     'https://www.castorama.ru/upload/iblock/0b0/e7vz50bf9dfldzjxbmczsd5avuwfo3pu/1001435545_1.jpg',
  175.     'https://cdn1.ozone.ru/s3/multimedia-m/6693403810.jpg',
  176.     'https://spkorzina.ru/files/674/674da4db97aebc7236cd6ef3386fd5a2.jpg',
  177.     'https://flowwill.ru/wp-content/uploads/c/d/f/cdf3ad8710f3ca82a55f8fa03e1cf85e.jpeg',
  178.     'https://s.leroymerlin.kz/upload/catalogue/product_images/d/3/original/18621041_tmp.jpg',
  179.     'https://i.pinimg.com/736x/ff/ce/e6/ffcee64255b0cc89e1fb576d9f1541ab.jpg',
  180.  
  181.     'https://www.lgbotanicals.com/assets/images/bitter-orange-736.jpg',
  182.     'https://i.pinimg.com/736x/9e/f4/33/9ef433614acaf3d92b4cbef10c93dd1a--citrus-trees-lime-trees.jpg',
  183.     'https://i.pinimg.com/736x/82/db/0a/82db0aab262156c2b2c20e381e1fecc5.jpg',
  184.     'https://botanikfidancilik.com/uploads/urunresim/111/thumb/wmurcott-mandalina-f182a2.jpg',
  185.     'https://upload.wikimedia.org/wikipedia/commons/2/2f/Starr_060916-8899_Musa_sp..jpg',
  186.     'https://kozalavka.ru/a/kozadereza/files/import/iiko_img_0d9422e0-b778-4ca4-baba-91a09aa888f4_08a210b4-1c18-443a-87e9-1b55b20d061c.jpg',
  187.     'https://img.goodfon.ru/original/2048x2048/c/eb/derevo-zelen-olivki-listya.jpg',
  188.     'https://priroda.club/uploads/posts/2023-12/1703194343_priroda-club-p-abrikos-zherdel-instagram-1.jpg',
  189.     'https://vlavke.ru/b1/c/7049.680x680.jpg',
  190.     'https://storage.ufamama.ru/images/cache/rowimages/Sliza_ostatok_physalis_alkekengi___fizalis_obiknovenniy_1-fs.jpg',
  191.  
  192.     'https://orhorai.ru/userfiles/menu/3-s81mwuw.jpg',
  193.     'https://luckygreen.ru/wa-data/public/shop/products/08/67/6708/images/16518/16518.750x0.jpg',
  194.     'https://i.pinimg.com/736x/fd/e0/a0/fde0a0a0f10ed09259922deed79b2d0a.jpg',
  195.     'https://www.orchidejos.lt/catalog/180603102249_Orchidejos.jpg',
  196.     'https://i.pinimg.com/736x/8b/76/f1/8b76f15565ec5f395f172de89359a06e.jpg',
  197.     'https://i.pinimg.com/originals/c1/b2/16/c1b21687b03be44ca2792c2cf0d52f22.jpg',
  198.     'https://plantplus.ru/wp-content/uploads/2021/12/Vanda-trjohcvetnaya.jpg',
  199.     'https://static.baza.farpost.ru/v/1502785644978_bulletin',
  200.     'https://avatars.dzeninfra.ru/get-zen_doc/3524431/pub_5ef9bf3e38b2f61a37ede0f5_5ef9bf56353d916ecd55b16c/scale_1200',
  201.     'https://i.pinimg.com/736x/c9/da/4c/c9da4cb7a12a4700b23aa988ec5565c9--exterior-dendrobium-orchids.jpg',
  202.     'https://orhideya20.ru/wp-content/uploads/2020/12/post-507949-0-27276900-1483515686_copy_800x776.jpg',
  203.     'https://i.pinimg.com/736x/a7/43/bc/a743bcdedf800534d966fec0c11f0575.jpg',
  204.     'https://passiflora.ru/image_display.php?image=c5w5z5j4c4z5i5s4y5n2q4k5n4p4p5d4h4h4v5h5h4o5c4o4n22484v2z3s5x594',
  205.     'https://i.pinimg.com/736x/2d/71/be/2d71be2fc6b07dcd9970ead349600cea.jpg',
  206.     'https://i.pinimg.com/736x/d0/3f/6e/d03f6efbc353e7b3eb5bd48c285dbebd--hoa-lan-mystique.jpg',
  207.     'https://chto-posadit.ru/wp-content/uploads/TSimbidium-mechelistnyy-Cymbidium-ensifolium-foto.jpg',
  208.     'https://www.picturethisai.com/image-handle/website_cmsname/image/1080/153756273005821957.jpeg?x-oss-process=image/format,webp',
  209.  
  210.     'https://www.ikea.com/ca/en/images/products/beaucarnea-recurvata-potted-plant-elephants-foot__0121090_pe277872_s5.jpg',
  211.     'https://topplant.ru/assets/images/products/2263/khamedoreya-izyashchnaya-elegans-4chelbu21.jpg',
  212.     'https://fikus-market.ru/upload/iblock/941/ws5u3o3xjo19ce4wbhk3j82fe51sbq10.jpg',
  213.     'https://pandp.ru/image/cache/catalog/pandp/nieuwkoop/potplants/hires/7/oop-europe-com-images-4CHSEBU33-800x800.png',
  214.     'https://flowwill.ru/wp-content/uploads/d/2/1/d21ae1ea807634f1e6a4c8679ec80f24.jpeg',
  215.     'https://i.etsystatic.com/9817393/r/il/789dc4/1495425571/il_794xN.1495425571_d5ru.jpg',
  216.  
  217.     'https://i.pinimg.com/736x/f7/27/5c/f7275c72bfa5f3e8fa1118c0dcfdaaaa.jpg',
  218.     'https://cdn0.youla.io/files/images/780_780/63/58/63583fe06d867359372021a7-1.jpg',
  219.     'https://www.plantarium.ru/dat/plants/2/232/174232_4d358b3a.jpg',
  220.     'https://www.outsidepride.com/images/products/detail/gardenflower/pentaspink2.jpg',
  221.     'https://cdn0.youla.io/files/images/780_780/63/01/630102d541399215aa5c8bce-1.jpg',
  222.     'https://www.kipogeorgiki.gr/image/cache/data/FytKallopistika/AboutPictum/11.-Abutilon-pictum-or-striatum-1500x1500.jpg',
  223.     'https://c.pxhere.com/photos/97/a1/rhododendron_flowers_inflorescence_red_heather_green_ericaceae_bush-1089563.jpg!d',
  224.     'https://i.pinimg.com/736x/a6/39/7b/a6397b391bcd2fec39c22e02ad46d12c.jpg',
  225.     'https://www.thompson-morgan.com/product_images/100/acal.jpg',
  226.  
  227.     'https://static.tildacdn.com/tild3964-3635-4030-b230-376364343336/345.jpg',
  228.     'https://moitsvery.ru/wp-content/uploads/2022/09/fikus-mikrokarpa-15.jpeg',
  229.     'https://www.picturethisai.com/image-handle/website_cmsname/image/1080/219467305502408704.jpeg?x-oss-process=image/format,webp',
  230.     'https://shop.plantship.ru/wp-content/uploads/2023/07/euonymus-japonicus-microphyllus.jpg',
  231.     'https://www.monaconatureencyclopedia.com/wp-content/uploads/2008/08/jpg_Il_Syzygium_paniculatum_e_un_sempreverde_australiano_con_frutti_commestibili_e_decorativi_c_Giuseppe_Mazza.jpg',
  232.   ];
  233.  
  234.   List<String> searchTermsSubName = [
  235.     'Adiantum capillus-veneris',
  236.     'Adiantum caudatum',
  237.     'Adiantum pedatum',
  238.     'Pteris cretica',
  239.     'Pteris ensiformis',
  240.     'Blechnum spicant',
  241.     'Nephrolepis cordifolia',
  242.     'Nephrolepis biserrata',
  243.     'Nephrolepis exaltata',
  244.     'Asplenium nidus',
  245.     'Asplenium bulbiferum',
  246.     'Asplenium dimorphum',
  247.     'Cyrtomium falcatum',
  248.     'Davallia canariensis',
  249.     'Davallia dissecta',
  250.     'Epipremnum aureum',
  251.     'Philodendron hederaceum',
  252.     'Hedera helix',
  253.     'Hoya carnosa',
  254.     'Ipomoea purpurea',
  255.     'Clerodendrum thomsoniae',
  256.     'Passiflora caerulea',
  257.     'Passiflora incarnata',
  258.     'Citrus aurantium',
  259.     'Citrus aurantiifolia',
  260.     'Citrus limon',
  261.     'Citrus reticulata',
  262.     'Musa paradisiaca',
  263.     'Punica granatum',
  264.     'Olea europaea',
  265.     'Prunus armeniaca',
  266.     'Persea americana',
  267.     'Physalis alkekengi',
  268.     'Phalaenopsis Golden Emperor',
  269.     'Phalaenopsis Golden beauty',
  270.     'Phalaenopsis schilleriana',
  271.     'Phalaenopsis lindenii',
  272.     'Miltonia',
  273.     'Vanda coerulea',
  274.     'Vanda tricolor',
  275.     'Vanda sanderiana',
  276.     'Dendrobium nobile',
  277.     'Dendrobium moniliforme',
  278.     'Dendrobium phalaenopsis',
  279.     'Dendrobium parishii',
  280.     'Dendrobium primulinum',
  281.     'Dendrobium densiflorum',
  282.     'Dendrobium lindleyi',
  283.     'Cymbidium ensifolium',
  284.     'Cymbidium lowianum',
  285.     'Beaucarnea recurvata',
  286.     'Chamaedorea elegans',
  287.     'Cycas revoluta',
  288.     'Chamaedorea seifrizii',
  289.     'Areca catechu',
  290.     'Livistona chinensis',
  291.     'Saintpaulia ionantha',
  292.     'Anthurium scherzerianum',
  293.     'Begonia tuberhybrida',
  294.     'Pentas lanceolata',
  295.     'Hippeastrum',
  296.     'Abutilon',
  297.     'Rhododendron',
  298.     'Mandevilla sanderi',
  299.     'Acalypha',
  300.     'Zanthoxylum',
  301.     'Ficus Microcarpa',
  302.     'Ehretia microphylla',
  303.     'Euonymus japonicus',
  304.     'Syzygium paniculatum',
  305.   ];
  306.  
  307.   @override
  308.   Widget buildResults(BuildContext context) {
  309.     List<String> matchQueryName = [];
  310.     List<String> matchQueryImage = [];
  311.     List<String> matchQuerySubName = [];
  312.     int i = 0;
  313.     for (var fruit in searchTermsName) {
  314.       if (fruit.toLowerCase().contains(query.toLowerCase())){
  315.         matchQueryName.add(fruit);
  316.         matchQueryImage.add(searchTermsImage[i]);
  317.         matchQuerySubName.add(searchTermsSubName[i]);
  318.       }
  319.       i++;
  320.     }
  321.     int z = 0;
  322.     for (var fruit in searchTermsSubName) {
  323.       if (fruit.toLowerCase().contains(query.toLowerCase())){
  324.         matchQueryName.add(searchTermsName[z]);
  325.         matchQueryImage.add(searchTermsImage[z]);
  326.         matchQuerySubName.add(searchTermsSubName[z]);
  327.       }
  328.       z++;
  329.     }
  330.     return ListView.builder(
  331.         itemCount: matchQueryName.length,
  332.         itemBuilder: (context, index){
  333.           var name = matchQueryName[index];
  334.           var image = matchQueryImage[index];
  335.           var subName = matchQuerySubName[index];
  336.           return elements(ElementName: name, ElementSubName: subName, ElementImage: image);
  337.         }
  338.     );
  339.   }
  340.  
  341.   @override
  342.   Widget buildSuggestions(BuildContext context) {
  343.     List<String> matchQueryName = [];
  344.     List<String> matchQueryImage = [];
  345.     List<String> matchQuerySubName = [];
  346.     int i = 0;
  347.     for (var fruit in searchTermsName) {
  348.       if (fruit.toLowerCase().contains(query.toLowerCase())){
  349.         matchQueryName.add(fruit);
  350.         matchQueryImage.add(searchTermsImage[i]);
  351.         matchQuerySubName.add(searchTermsSubName[i]);
  352.       }
  353.       i++;
  354.     }
  355.     int z = 0;
  356.     for (var fruit in searchTermsSubName) {
  357.       if (fruit.toLowerCase().contains(query.toLowerCase())){
  358.         matchQueryName.add(searchTermsName[z]);
  359.         matchQueryImage.add(searchTermsImage[z]);
  360.         matchQuerySubName.add(searchTermsSubName[z]);
  361.       }
  362.       z++;
  363.     }
  364.     return ListView.builder(
  365.       itemBuilder: (context, index){
  366.         var name = matchQueryName[index];
  367.         var image = matchQueryImage[index];
  368.         var subName = matchQuerySubName[index];
  369.         return elements(ElementName: name, ElementSubName: subName, ElementImage: image);
  370.       },
  371.       itemCount: query == '' ? matchQueryName.length ~/ 2 : matchQueryName.length,
  372.     );
  373.   }
  374. }
  375.  
  376. class _ferns extends StatelessWidget {
  377.   const _ferns({super.key});
  378.  
  379.   @override
  380.   Widget build(BuildContext context) {
  381.     return Container(
  382.       width: MediaQuery.of(context).size.width * 0.45,
  383.       child: InkWell(
  384.         onTap: (){
  385.           showSearch(
  386.               context: context,
  387.               delegate: CustomSearchDelegateFerns()
  388.           );
  389.         },
  390.         child: Image.asset('assets/ferns.png'),
  391.       ),
  392.     );
  393.   }
  394. }
  395.  
  396. class _climbing extends StatelessWidget {
  397.   const _climbing({super.key});
  398.  
  399.   @override
  400.   Widget build(BuildContext context) {
  401.     return Container(
  402.       width: MediaQuery.of(context).size.width * 0.45,
  403.       child: InkWell(
  404.         onTap: (){
  405.           showSearch(
  406.               context: context,
  407.               delegate: CustomSearchDelegateClimbing()
  408.           );
  409.         },
  410.         child: Image.asset('assets/climbing.png'),
  411.       ),
  412.     );
  413.   }
  414. }
  415.  
  416. class _fruits extends StatelessWidget {
  417.   const _fruits({super.key});
  418.  
  419.   @override
  420.   Widget build(BuildContext context) {
  421.     return Container(
  422.       width: MediaQuery.of(context).size.width * 0.45,
  423.       child: InkWell(
  424.         onTap: (){
  425.           showSearch(
  426.               context: context,
  427.               delegate: CustomSearchDelegateFruits()
  428.           );
  429.         },
  430.         child: Image.asset('assets/fruits.png'),
  431.       ),
  432.     );
  433.   }
  434. }
  435.  
  436. class _bonsai extends StatelessWidget {
  437.   const _bonsai({super.key});
  438.  
  439.   @override
  440.   Widget build(BuildContext context) {
  441.     return Container(
  442.       width: MediaQuery.of(context).size.width * 0.45,
  443.       child: InkWell(
  444.         onTap: (){
  445.           showSearch(
  446.               context: context,
  447.               delegate: CustomSearchDelegateBonsai()
  448.           );
  449.         },
  450.         child: Image.asset('assets/bonsai.png'),
  451.       ),
  452.     );
  453.   }
  454. }
  455.  
  456. class _orhids extends StatelessWidget {
  457.   const _orhids({super.key});
  458.  
  459.   @override
  460.   Widget build(BuildContext context) {
  461.     return Container(
  462.       width: MediaQuery.of(context).size.width * 0.45,
  463.       child: InkWell(
  464.         onTap: (){
  465.           showSearch(
  466.               context: context,
  467.               delegate: CustomSearchDelegateOrhids()
  468.           );
  469.         },
  470.         child: Image.asset('assets/orhids.png'),
  471.       ),
  472.     );
  473.   }
  474. }
  475.  
  476. class _palms extends StatelessWidget {
  477.   const _palms({super.key});
  478.  
  479.   @override
  480.   Widget build(BuildContext context) {
  481.     return Container(
  482.       width: MediaQuery.of(context).size.width * 0.95,
  483.       child: InkWell(
  484.         onTap: (){
  485.           showSearch(
  486.               context: context,
  487.               delegate: CustomSearchDelegatePalmTrees()
  488.           );
  489.         },
  490.         child: Image.asset('assets/palms.png'),
  491.       ),
  492.     );
  493.   }
  494. }
  495.  
  496. class _flowering extends StatelessWidget {
  497.   const _flowering({super.key});
  498.  
  499.   @override
  500.   Widget build(BuildContext context) {
  501.     return Container(
  502.       width: MediaQuery.of(context).size.width * 0.45,
  503.       child: InkWell(
  504.         onTap: (){
  505.           showSearch(
  506.               context: context,
  507.               delegate: CustomSearchDelegateFlowering()
  508.           );
  509.         },
  510.         child: Image.asset('assets/flowering.png'),
  511.       ),
  512.     );
  513.   }
  514. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement