Facebook
From Stained Lion, 5 Days ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 59
  1. import 'package:flutter/material.dart';
  2. import 'car.dart';
  3.  
  4. void main() {
  5.   runApp(const Cars());
  6. }
  7.  
  8. class Cars extends StatefulWidget {
  9.   const Cars({Key? key}) : super(key: key);
  10.  
  11.   @override
  12.   State<Cars> createState() => _CarsState();
  13. }
  14.  
  15. class _CarsState extends State<Cars> {
  16.  
  17.   List cars = [
  18.     Car("Renault", 2018, "red", 89000),
  19.     Car("Audi", 2019, "black", 45000),
  20.     Car("Mazda", 2011, "blue", 186000),
  21.     Car("Lexus", 2015, "white", 230000),
  22.     Car("Opel", 2010, "black", 123000),
  23.     Car("Volvo", 2018, "yellow", 20000)
  24.   ];
  25.  
  26.   TextEditingController controllerA = TextEditingController();
  27.   TextEditingController controllerB = TextEditingController();
  28.   TextEditingController controllerC = TextEditingController();
  29.   TextEditingController controllerD = TextEditingController();
  30.  
  31.   @override
  32.   Widget build(BuildContext context) {
  33.  
  34.     return MaterialApp(
  35.       home: Scaffold(
  36.         body: SafeArea(
  37.           child: Column(
  38.             children: [
  39.               Container(
  40.                 margin: EdgeInsets.fromLTRB(0, 20, 0, 20),
  41.                 padding: EdgeInsets.all(10),
  42.                 width: 400,
  43.                 decoration: BoxDecoration(
  44.                   border: Border.all(
  45.                     width: 3,
  46.                     color: Colors.brown
  47.                   )
  48.                 ),
  49.                 child: Column(
  50.                   children: [
  51.                     TextField(
  52.                       controller: controllerA,
  53.                       decoration: const InputDecoration(
  54.                         labelText: 'Nazwa',
  55.                       ),
  56.                     ),
  57.                     TextField(
  58.                       controller: controllerB,
  59.                       decoration: const InputDecoration(
  60.                         labelText: 'Rocznik',
  61.                       ),
  62.                     ),
  63.                     TextField(
  64.                       controller: controllerC,
  65.                       decoration: const InputDecoration(
  66.                         labelText: 'Kolor',
  67.                       ),
  68.                     ),
  69.                     TextField(
  70.                       controller: controllerD,
  71.                       decoration: const InputDecoration(
  72.                         labelText: 'Przebieg',
  73.                       ),
  74.                     ),
  75.                     TextButton(
  76.                         onPressed: () {
  77.                           setState(() {
  78.                             String name = controllerA.text;
  79.                             int year = int.parse(controllerB.text);
  80.                             String color = controllerC.text;
  81.                             int milleage = int.parse(controllerD.text);
  82.  
  83.                             Car newCar = Car(name, year, color, milleage);
  84.                             cars.add(newCar);
  85.                             controllerA.clear();
  86.                             controllerB.clear();
  87.                             controllerC.clear();
  88.                             controllerD.clear();
  89.                           });
  90.                         },
  91.                         child: Container(
  92.                             margin: const EdgeInsets.fromLTRB(0, 20, 0, 10),
  93.                             alignment: Alignment.center,
  94.                             width: 400,
  95.                             height: 60,
  96.                             decoration: BoxDecoration(
  97.                                 color: Colors.purpleAccent,
  98.                                 borderRadius: BorderRadius.circular(5)
  99.                             ),
  100.                             child: const Text("Add", style: TextStyle(
  101.                                 color: Colors.white,
  102.                                 fontSize: 20
  103.                             )
  104.                             )
  105.                         )
  106.                     )
  107.                   ],
  108.                 )
  109.               ),
  110.               TextButton(
  111.                 onPressed: () {
  112.                   setState(() {
  113.                     cars.removeWhere((car) => car.isCrashed());
  114.                   });
  115.                 },
  116.                 child: Container(
  117.                   alignment: Alignment.center,
  118.                   width: 400,
  119.                   height: 60,
  120.                   decoration: BoxDecoration(
  121.                     color: Colors.grey[700],
  122.                     borderRadius: BorderRadius.circular(5)
  123.                   ),
  124.                   child: const Text("Remove", style: TextStyle(
  125.                       color: Colors.white,
  126.                       fontSize: 20
  127.                     )
  128.                   )
  129.                 )
  130.               ),
  131.               Expanded(
  132.                 child: ListView.builder(
  133.                     itemCount: cars.length,
  134.                     itemBuilder: (BuildContext context, int index) {
  135.                       return TextButton(
  136.                         onPressed: () {
  137.                           setState(() {
  138.                             cars[index].setCrashed();
  139.                           });
  140.                         },
  141.                         child: Container(
  142.                           margin: EdgeInsets.all(5),
  143.                           height: 100,
  144.                           width: 400,
  145.                           decoration: BoxDecoration(
  146.                               color: cars[index].isCrashed() ? Colors.amber[800] : Colors.amber,
  147.                               borderRadius: BorderRadius.circular(5)
  148.                           ),
  149.                           child: Column(
  150.                             mainAxisAlignment: MainAxisAlignment.center,
  151.                             children: [
  152.                               Text(cars[index].getName(), style: const TextStyle(
  153.                                   color: Colors.redAccent,
  154.                                   fontSize: 23,
  155.                                   fontWeight: FontWeight.bold
  156.                                 )
  157.                               ),
  158.                               Container(
  159.                                   child: Text("rocznik " + cars[index].getYear().toString(), style: const TextStyle(color: Colors.brown)),
  160.                                   margin: EdgeInsets.all(8),
  161.                               )
  162.                             ],
  163.                           )
  164.                         ),
  165.                       );
  166.                     }
  167.                 ),
  168.               ),
  169.             ],
  170.           ),
  171.         )
  172.       )
  173.     );
  174.   }
  175. }
  176.  
  177.  
  178.  
  179.