Advertisement
Hevernooo

Растение

Nov 19th, 2024 (edited)
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 22.37 KB | Source Code | 0 0
  1. // ignore_for_file: prefer_const_constructors
  2. import 'package:cloud_firestore/cloud_firestore.dart';
  3. import 'package:plantual_1/utils/utils.dart';
  4. import 'package:firebase_core/firebase_core.dart';
  5. import 'package:firebase_auth/firebase_auth.dart';
  6. import 'package:flutter/material.dart';
  7. import 'package:insta_image_viewer/insta_image_viewer.dart';
  8. import 'package:plantual_1/icons.dart';
  9.  
  10. Map<String, String> _mapPlantInfo =   {
  11.   'name': 'Цимбидиум мечелистный',
  12.   'sort': 'Цимбидиум',
  13.   'subName': 'Cymbidium aloifolium',
  14.  
  15.   'imagePlant1': 'https://chto-posadit.ru/wp-content/uploads/TSimbidium-mechelistnyy-Cymbidium-ensifolium-foto.jpg',
  16.   'imagePlant2': 'https://www.picturethisai.com/image-handle/website_cmsname/image/1080/157555734219849732.jpeg?x-oss-process=image/format,webp&v=1.0',
  17.   'imagePlant3': 'https://passiflora.ru/images/_products/orchidgart/1128.jpg',
  18.   'imagePlant4': 'https://passiflora.ru/images/_products/tenshinorchids/1304.jpg',
  19.  
  20.   'description': 'Цимбидиум мечелистный — это популярный вид орхидей с плотными, блестящими листьями, которые растут в форме меча. Цветы крупные, с приятным ароматом, появляются на длинных цветоносах. Окраска цветов варьируется от белого до кремово-желтого с красноватыми пятнами. Растение устойчиво и адаптируется к условиям средней освещенности и умеренной влажности.',
  21.  
  22.   'toxic': 'Нет',
  23.   'type': 'Эпифитное растение',
  24.   'lifespan': '15-20 лет',
  25.  
  26.   'plantHeigh': '30-50 см',
  27.   'crownDiameter': '30-40 см',
  28.   'leafsColor': 'Зеленый',
  29.   'floweringTime': 'Весна, лето',
  30.   'flowerDiameter': '5-8 см',
  31.   'flowerColor': 'Белый, кремово-желтый с красноватыми пятнами',
  32.   'harvestTime': '',
  33.   'fruitColor': '',
  34.  
  35.   'genus': 'Cymbidium',
  36.   'family': 'Орхидные',
  37.   'order': 'Лилиецветные',
  38.   'class': 'Однодольные',
  39.   'phylum': 'Покрытосеменные',
  40.  
  41.   'temperature': '18-25°C',
  42.   'sun': 'Яркий рассеянный свет',
  43.   'dirt': 'Субстрат для орхидей',
  44.   'locate': 'Светлое место с частичной тенью',
  45.  
  46.   'watering': '2-3 раза в неделю',
  47.   'cut': 'По мере необходимости',
  48.   'spreading': 'Делением куста',
  49.   'repotting': '1 раз в 2-3 года',
  50.  
  51.   'date': '3',
  52. };
  53.  
  54. void _main() async{
  55.   WidgetsFlutterBinding.ensureInitialized();
  56.   await Firebase.initializeApp();
  57. }
  58.  
  59. class cymbidiumEnsifolium extends StatefulWidget {
  60.   cymbidiumEnsifolium({super.key});
  61.  
  62.   @override
  63.   State<cymbidiumEnsifolium> createState() => _cymbidiumEnsifoliumState();
  64. }
  65.  
  66. class _cymbidiumEnsifoliumState extends State<cymbidiumEnsifolium> {
  67.   @override
  68.   void initState(){
  69.     super.initState();
  70.   }
  71.   final _auth = FirebaseAuth.instance;
  72.   var buttonText = 'Добавить в мой сад';
  73.  
  74.   @override
  75.   Widget build(BuildContext context) {
  76.     return Scaffold(
  77.       appBar: AppBar(),
  78.       bottomNavigationBar: BottomAppBar(child: FloatingActionButton.extended(onPressed: ()async{
  79.         final userRef = FirebaseFirestore.instance.collection(_auth.currentUser!.uid.toString());
  80.         userRef.get().then((snapshot) {
  81.           snapshot.docs.forEach((doc) {
  82.             print(doc);
  83.           });
  84.         });
  85.  
  86.         DateTime now = DateTime.now();
  87.         var date = int.parse(_mapPlantInfo['date']!);
  88.         var dateN = new DateTime.now().add(Duration(days: date)).toString();
  89.         var dateNext = DateTime.parse(dateN);
  90.         var asd = DateTime.now().difference(dateNext);
  91.         assert(date is int);
  92.         String user = _auth.currentUser!.uid.toString();
  93.         CollectionReference collectionReference = FirebaseFirestore.instance.collection(user);
  94.         if((dateNext.hour + 5) > 24){
  95.           collectionReference.doc(_mapPlantInfo['name']).set({
  96.             'name': '${_mapPlantInfo['name']}',
  97.             'image': '${_mapPlantInfo['imagePlant1']}',
  98.             'dateDay': '${dateNext.day}',
  99.             'dateMonth': '${dateNext.month}',
  100.             'dateYear': '${dateNext.year}',
  101.             'dateHour': '${24 - (dateNext.hour + 5)}',
  102.             'dateMinute': '${dateNext.minute}',
  103.             'step': '${_mapPlantInfo['date']}'
  104.           });
  105.         }else{
  106.           collectionReference.doc(_mapPlantInfo['name']).set({
  107.             'name': '${_mapPlantInfo['name']}',
  108.             'image': '${_mapPlantInfo['imagePlant1']}',
  109.             'dateDay': '${dateNext.day}',
  110.             'dateMonth': '${dateNext.month}',
  111.             'dateYear': '${dateNext.year}',
  112.             'dateHour': '${dateNext.hour + 5}',
  113.             'dateMinute': '${dateNext.minute}',
  114.             'step': '${_mapPlantInfo['date']}'
  115.           });
  116.         }
  117.         utilsDone().toastMessage('Растение добавлено');
  118.       },
  119.           label: Row(
  120.             children: [
  121.               Text(buttonText),
  122.               Icon(Icons.add)
  123.             ],
  124.           )
  125.       ),
  126.       ),
  127.       body: SingleChildScrollView(
  128.         scrollDirection: Axis.vertical,
  129.         child: Column(
  130.           children: [
  131.             _naming(),
  132.             _plantImages(),
  133.             _description(),
  134.             _weedEtc(),
  135.             _characteristics(),
  136.             _scientificClassification(),
  137.             _conditions(),
  138.             _guide(),
  139.           ],
  140.         ),
  141.       ),
  142.     );
  143.   }
  144. }
  145.  
  146. class _naming extends StatelessWidget {
  147.   _naming({super.key});
  148.  
  149.   @override
  150.   Widget build(BuildContext context) {
  151.     return Container(
  152.       width: double.infinity,
  153.       child: Column(
  154.           children: [
  155.             Row(
  156.               children: [
  157.                 Padding(padding: EdgeInsets.only(left: 10)),
  158.                 Flexible(child: Text('${_mapPlantInfo['name']}, вид ${_mapPlantInfo['sort']}', softWrap: true, style: TextStyle(fontSize: 30))),
  159.                 Padding(padding: EdgeInsets.fromLTRB(0, 0, 10, 0)),
  160.               ],
  161.             ),
  162.             Row(
  163.               children: [
  164.                 Padding(padding: EdgeInsets.only(left: 10)),
  165.                 Flexible(child: Text('Ботаническое название: ${_mapPlantInfo['subName']}', softWrap: true, style: TextStyle(fontSize: 22, color: Colors.grey[800]))),
  166.                 Padding(padding: EdgeInsets.fromLTRB(0, 0, 10, 0)),
  167.               ],
  168.             )
  169.           ]
  170.       ),
  171.     );
  172.   }
  173. }
  174.  
  175. class _plantImages extends StatelessWidget {
  176.   _plantImages({super.key});
  177.  
  178.   @override
  179.   Widget build(BuildContext context) {
  180.     return Container(
  181.       child: Column(
  182.         crossAxisAlignment: CrossAxisAlignment.start,
  183.         children: [
  184.           Container(
  185.             width: double.infinity,
  186.             height: 10,
  187.             color: Colors.grey[200],
  188.           ),
  189.           Padding(padding: EdgeInsets.only(top: 10)),
  190.           const Row(children: [
  191.             Padding(padding: EdgeInsets.only(left: 10)),
  192.             Icon(Icons.image_outlined),
  193.             Padding(padding: EdgeInsets.only(right: 10)),
  194.             Text('Изображения',style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),),
  195.           ],
  196.           ),
  197.           Padding(padding: EdgeInsets.only(bottom: 10)),
  198.           Container(
  199.             child: Row(
  200.               mainAxisAlignment: MainAxisAlignment.spaceAround,
  201.               children: [
  202.                 Column(
  203.                   children: <Widget>[
  204.                     _plantImage(imageUrl: '${_mapPlantInfo['imagePlant1']}',),
  205.                     Padding(padding: EdgeInsets.only(top: 10)),
  206.                     _plantImage(imageUrl: '${_mapPlantInfo['imagePlant2']}',),
  207.                   ],
  208.                 ),
  209.                 Column(
  210.                   children: <Widget>[
  211.                     _plantImage(imageUrl: '${_mapPlantInfo['imagePlant3']}',),
  212.                     Padding(padding: EdgeInsets.only(top: 10)),
  213.                     _plantImage(imageUrl: '${_mapPlantInfo['imagePlant4']}',),
  214.                   ],
  215.                 ),
  216.               ],
  217.             ),
  218.           ),
  219.           Padding(padding: EdgeInsets.only(bottom: 10))
  220.         ],
  221.       ),
  222.     );
  223.   }
  224. }
  225.  
  226. class _plantImage extends StatelessWidget {
  227.   final String imageUrl;
  228.  
  229.   const _plantImage({super.key, required this.imageUrl});
  230.  
  231.   @override
  232.   Widget build(BuildContext context) {
  233.     return InkWell(
  234.       child: Container(
  235.         child: Container(
  236.           child: InstaImageViewer(
  237.             child: Image(
  238.               fit: BoxFit.fitWidth,
  239.               image: NetworkImage(imageUrl),
  240.             ),
  241.           ),
  242.           decoration: BoxDecoration(
  243.               borderRadius: BorderRadius.circular(17),
  244.               image: DecorationImage(image: NetworkImage(imageUrl))
  245.           ),
  246.         ),
  247.         width: MediaQuery.of(context).size.width * 0.45,
  248.         height: MediaQuery.of(context).size.width * 0.3,
  249.         decoration: BoxDecoration(
  250.             borderRadius: BorderRadius.circular(17),
  251.             image: DecorationImage(image: NetworkImage(imageUrl))
  252.         ),
  253.       ),
  254.     );
  255.   }
  256. }
  257.  
  258. class _description extends StatelessWidget {
  259.   const _description({ super.key });
  260.  
  261.   @override
  262.   Widget build(BuildContext context) {
  263.     return Container(
  264.         child: Column(
  265.             children: [
  266.               Container(
  267.                 width: double.infinity,
  268.                 height: 10,
  269.                 color: Colors.grey[200],
  270.               ),
  271.               Padding(padding: EdgeInsets.only(top: 10)),
  272.               Row(
  273.                   children: [
  274.                     Padding(padding: EdgeInsets.only(left: 10)),
  275.                     Icon(Icons.align_vertical_bottom_rounded),
  276.                     Padding(padding: EdgeInsets.only(right: 10)),
  277.                     Text('Описание', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold))]
  278.               ),
  279.               Padding(padding: EdgeInsets.only(top: 10)),
  280.               Row(
  281.                 children: [
  282.                   Padding(padding: EdgeInsets.only(left: 10)),
  283.                   Flexible(child: Text('${_mapPlantInfo['description']}', style: TextStyle(fontSize: 16), softWrap: true,)),
  284.                   Padding(padding: EdgeInsets.only(right: 10)),
  285.                 ],
  286.               ),
  287.               Padding(padding: EdgeInsets.only(bottom: 10))
  288.             ]
  289.         )
  290.     );
  291.   }
  292. }
  293.  
  294. class _weedEtc extends StatelessWidget {
  295.   const _weedEtc({super.key});
  296.  
  297.   @override
  298.   Widget build(BuildContext context) {
  299.     return Container(
  300.       child: Column(
  301.         children: [
  302.           Container(
  303.             width: double.infinity,
  304.             height: 10,
  305.             color: Colors.grey[200],
  306.           ),
  307.           Padding(padding: EdgeInsets.only(top: 10)),
  308.           Row(
  309.               children: [
  310.                 Padding(padding: EdgeInsets.only(left: 10)),
  311.                 Icon(Icons.lightbulb),
  312.                 Padding(padding: EdgeInsets.only(right: 10)),
  313.                 Text('Ключевые факты', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold))]
  314.           ),
  315.           Padding(padding: EdgeInsets.only(top: 10)),
  316.           Padding(
  317.             padding: EdgeInsets.symmetric(horizontal: 20),
  318.             child: Column(
  319.               children: [
  320.                 _linee(lineName: 'Токсичность', lineId: 'toxic', lineWidth: 100),
  321.                 _linee(lineName: 'Тип растения', lineId: 'type', lineWidth: 100),
  322.                 _linee(lineName: 'Продолжительность жизни', lineId: 'lifespan', lineWidth: 10),
  323.               ],
  324.             ),
  325.           ),
  326.           Padding(padding: EdgeInsets.only(bottom: 10))
  327.         ],
  328.       ),
  329.     );
  330.   }
  331. }
  332.  
  333. class _linee extends StatelessWidget {
  334.   final String lineName;
  335.   final String lineId;
  336.   final double lineWidth;
  337.   const _linee({super.key, required this.lineName, required this.lineId, required this.lineWidth});
  338.  
  339.   @override
  340.   Widget build(BuildContext context) {
  341.     if(_mapPlantInfo['${lineId}'] == ''){
  342.       return Container();
  343.     }else{
  344.       return Container(
  345.         child: Column(
  346.           children: [
  347.             _otstup(),
  348.             _line(lineId: lineId, lineWidth: lineWidth, lineName: lineName)
  349.           ],
  350.         ),
  351.       );
  352.     }}
  353. }
  354.  
  355. class _line extends StatelessWidget {
  356.   final String lineName;
  357.   final String lineId;
  358.   final double lineWidth;
  359.   const _line({super.key, required this.lineName, required this.lineId, required this.lineWidth});
  360.  
  361.   @override
  362.   Widget build(BuildContext context) {
  363.     if(_mapPlantInfo['${lineId}'] == '') {
  364.       return Container();
  365.     }else{
  366.       return Row(
  367.         mainAxisAlignment: MainAxisAlignment.spaceBetween,
  368.         children: [
  369.           Text('$lineName', style: TextStyle(fontSize: 16),),
  370.           Padding(padding: EdgeInsets.only(right: lineWidth)),
  371.           Container(child: Flexible(child: Text('${_mapPlantInfo[lineId]}', softWrap: true, style: TextStyle(fontWeight: FontWeight.bold, fontSize: 15)))),
  372.         ],
  373.       );
  374.     }}
  375. }
  376.  
  377. class _lineWithIcon extends StatelessWidget {
  378.   final Color? lineIconColor;
  379.   final IconData lineIcon;
  380.   final String lineWithIconName;
  381.   final String lineWithIconId;
  382.   const _lineWithIcon({super.key, required this.lineIconColor, required this.lineIcon, required this.lineWithIconName, required this.lineWithIconId});
  383.  
  384.   @override
  385.   Widget build(BuildContext context) {
  386.     if(_mapPlantInfo['${lineWithIconId}'] == ''){
  387.       return Container();
  388.     }else{
  389.       return Column(
  390.         children: [
  391.           _otstup(),
  392.           _lineWithIco(lineIconColor: lineIconColor, lineIcon: lineIcon, lineWithIconName: lineWithIconName, lineWithIconId: lineWithIconId)
  393.         ],
  394.       );
  395.     }}
  396. }
  397.  
  398. class _lineWithIco extends StatelessWidget {
  399.   final Color? lineIconColor;
  400.   final IconData lineIcon;
  401.   final String lineWithIconName;
  402.   final String lineWithIconId;
  403.   const _lineWithIco({super.key, required this.lineIconColor, required this.lineIcon, required this.lineWithIconName, required this.lineWithIconId});
  404.  
  405.   @override
  406.   Widget build(BuildContext context) {
  407.     if(_mapPlantInfo['${lineWithIconId}'] == ''){
  408.       return Container();
  409.     }else{
  410.       return Row(
  411.         mainAxisAlignment: MainAxisAlignment.start,
  412.         children: [
  413.           Icon(lineIcon, color: lineIconColor,),
  414.           Padding(padding: EdgeInsets.only(right: 10)),
  415.           Flexible(
  416.               child: Column(
  417.                 mainAxisAlignment: MainAxisAlignment.center,
  418.                 crossAxisAlignment: CrossAxisAlignment.start,
  419.                 children: [
  420.                   Text(lineWithIconName, style: TextStyle(fontSize: 16, color: Colors.grey[850]),),
  421.                   Text('${_mapPlantInfo[lineWithIconId]}', style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold))
  422.                 ],
  423.               )
  424.           )
  425.         ],
  426.       );
  427.     }}
  428. }
  429.  
  430. class _characteristics extends StatelessWidget {
  431.   const _characteristics({super.key});
  432.  
  433.   @override
  434.   Widget build(BuildContext context) {
  435.     return Container(
  436.       child: Column(
  437.         children: [
  438.           Container(
  439.             width: double.infinity,
  440.             height: 10,
  441.             color: Colors.grey[200],
  442.           ),
  443.           Padding(padding: EdgeInsets.only(top: 10)),
  444.           Row(
  445.               children: [
  446.                 Padding(padding: EdgeInsets.only(left: 10)),
  447.                 Icon(Icons.spa),
  448.                 Padding(padding: EdgeInsets.only(right: 10)),
  449.                 Text('Внешние характеристики', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold))]
  450.           ),
  451.           Padding(padding: EdgeInsets.only(top: 10)),
  452.           Padding(
  453.             padding: EdgeInsets.symmetric(horizontal: 20),
  454.             child: Column(
  455.               children: [
  456.                 _linee(lineName: 'Высота растения', lineId: 'plantHeigh', lineWidth: 100),
  457.                 _linee(lineName: 'Диаметр короны', lineId: 'crownDiameter', lineWidth: 90),
  458.                 _linee(lineName: 'Цвет листьев', lineId: 'leafsColor', lineWidth: 100),
  459.                 _linee(lineName: 'Время цветенния', lineId: 'floweringTime', lineWidth: 10),
  460.                 _linee(lineName: 'Диаметр цветка', lineId: 'flowerDiameter', lineWidth: 95),
  461.                 _linee(lineName: 'Цвет цветка', lineId: 'flowerColor', lineWidth: 95),
  462.                 _linee(lineName: 'Время сбора урожая', lineId: 'harvestTime', lineWidth: 65),
  463.                 _linee(lineName: 'Цвет фрукта', lineId: 'fruitColor', lineWidth: 95),
  464.                 Padding(padding: EdgeInsets.only(top: 10)),
  465.               ],
  466.             ),
  467.           ),
  468.           Padding(padding: EdgeInsets.only(bottom: 10))
  469.         ],
  470.       ),
  471.     );
  472.   }
  473. }
  474.  
  475. class _otstup extends StatelessWidget {
  476.   const _otstup({super.key});
  477.  
  478.   @override
  479.   Widget build(BuildContext context) {
  480.     return Container(
  481.       child: Column(
  482.         children: [
  483.           Padding(padding: EdgeInsets.only(bottom: 5)),
  484.           Container(width: double.infinity, height: 0.5, color: Colors.grey),
  485.           Padding(padding: EdgeInsets.only(top: 5)),
  486.         ],
  487.       ),
  488.     );
  489.   }
  490. }
  491.  
  492. class _scientificClassification extends StatelessWidget {
  493.   const _scientificClassification({super.key});
  494.  
  495.   @override
  496.   Widget build(BuildContext context) {
  497.     return Container(
  498.       child: Column(
  499.         children: [
  500.           Container(
  501.             width: double.infinity,
  502.             height: 10,
  503.             color: Colors.grey[200],
  504.           ),
  505.           Padding(padding: EdgeInsets.only(top: 10)),
  506.           Row(
  507.               children: [
  508.                 Padding(padding: EdgeInsets.only(left: 10)),
  509.                 Icon(Icons.category),
  510.                 Padding(padding: EdgeInsets.only(right: 10)),
  511.                 Text('Научная классификация', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold))]
  512.           ),
  513.           Padding(padding: EdgeInsets.only(top: 10)),
  514.           Padding(
  515.             padding: EdgeInsets.symmetric(horizontal: 20),
  516.             child: Column(
  517.               children: [
  518.                 _linee(lineName: 'Род', lineId: 'genus', lineWidth: 90),
  519.                 _linee(lineName: 'Семейство', lineId: 'family', lineWidth: 100),
  520.                 _linee(lineName: 'Порядок', lineId: 'order', lineWidth: 105),
  521.                 _linee(lineName: 'Класс', lineId: 'class', lineWidth: 110),
  522.                 _linee(lineName: 'Отдел', lineId: 'phylum', lineWidth: 110),
  523.                 Padding(padding: EdgeInsets.only(top: 10)),
  524.               ],
  525.             ),
  526.           ),
  527.           Padding(padding: EdgeInsets.only(bottom: 10))
  528.         ],
  529.       ),
  530.     );
  531.   }
  532. }
  533.  
  534. class _conditions extends StatelessWidget {
  535.   const _conditions({super.key});
  536.  
  537.   @override
  538.   Widget build(BuildContext context) {
  539.     return Container(
  540.       child: Column(
  541.         children: [
  542.           Container(
  543.             width: double.infinity,
  544.             height: 10,
  545.             color: Colors.grey[200],
  546.           ),
  547.           Padding(padding: EdgeInsets.only(top: 10)),
  548.           Row(
  549.               children: [
  550.                 Padding(padding: EdgeInsets.only(left: 10)),
  551.                 Icon(Icons.flare),
  552.                 Padding(padding: EdgeInsets.only(right: 10)),
  553.                 Text('Условия', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold))]
  554.           ),
  555.           Padding(padding: EdgeInsets.only(top: 10)),
  556.           Padding(
  557.             padding: EdgeInsets.symmetric(horizontal: 20),
  558.             child: Column(
  559.               children: [
  560.                 _lineWithIcon(lineIconColor: Colors.blue, lineIcon: Icons.thermostat, lineWithIconName: 'Температура', lineWithIconId: 'temperature'),
  561.                 _lineWithIcon(lineIconColor: Colors.green, lineIcon: Icons.location_on, lineWithIconName: 'Расположение', lineWithIconId: 'locate'),
  562.                 _lineWithIcon(lineIconColor: Colors.orange[400], lineIcon: Icons.sunny, lineWithIconName: 'Солнечный свет', lineWithIconId: 'sun'),
  563.                 _lineWithIcon(lineIconColor: Colors.brown, lineIcon: MyFlutterApp.pot, lineWithIconName: 'Земля', lineWithIconId: 'dirt'),
  564.                 Padding(padding: EdgeInsets.only(top: 10)),
  565.               ],
  566.             ),
  567.           ),
  568.           Padding(padding: EdgeInsets.only(bottom: 10))
  569.         ],
  570.       ),
  571.     );
  572.   }
  573. }
  574.  
  575. class _guide extends StatelessWidget {
  576.   const _guide({super.key});
  577.  
  578.   @override
  579.   Widget build(BuildContext context) {
  580.     return Container(
  581.       child: Column(
  582.         children: [
  583.           Container(
  584.             width: double.infinity,
  585.             height: 10,
  586.             color: Colors.grey[200],
  587.           ),
  588.           Padding(padding: EdgeInsets.only(top: 10)),
  589.           Row(
  590.               children: [
  591.                 Padding(padding: EdgeInsets.only(left: 10)),
  592.                 Icon(MyFlutterApp.guidebook),
  593.                 Padding(padding: EdgeInsets.only(right: 10)),
  594.                 Text('Гид', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold))]
  595.           ),
  596.           Padding(padding: EdgeInsets.only(top: 10)),
  597.           Padding(
  598.             padding: EdgeInsets.symmetric(horizontal: 20),
  599.             child: Column(
  600.               children: [
  601.                 _lineWithIcon(lineIconColor: Colors.blue, lineIcon: Icons.water_drop, lineWithIconName: 'Полив', lineWithIconId: 'watering'),
  602.                 _lineWithIcon(lineIconColor: Colors.orange, lineIcon: Icons.cut, lineWithIconName: 'Обрезка', lineWithIconId: 'cut'),
  603.                 _lineWithIcon(lineIconColor: Colors.green[600], lineIcon: MyFlutterApp.spread, lineWithIconName: 'Распространение', lineWithIconId: 'spreading'),
  604.                 _lineWithIcon(lineIconColor: Colors.orange, lineIcon: MyFlutterApp.upgrade, lineWithIconName: 'Преувеличение', lineWithIconId: 'repotting'),
  605.                 Padding(padding: EdgeInsets.only(top: 10)),
  606.               ],
  607.             ),
  608.           ),
  609.           Padding(padding: EdgeInsets.only(bottom: 10))
  610.         ],
  611.       ),
  612.     );
  613.   }
  614. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement