Advertisement
ekeydar

Untitled

Nov 29th, 2021
378
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 2.43 KB | None | 0 0
  1. import 'dart:math';
  2.  
  3. import 'package:flutter/material.dart';
  4. import 'package:get/get.dart';
  5.  
  6. void main() => runApp(GetMaterialApp(home: Home()));
  7.  
  8. class Controller extends GetxController {
  9.   static Controller get to => Get.find();
  10.   final RxList<int> numbers = <int>[].obs;
  11. }
  12.  
  13. class Home extends StatelessWidget {
  14.   final Controller c = Get.put(Controller());
  15.  
  16.   @override
  17.   Widget build(context) {
  18.     return Scaffold(
  19.       appBar: AppBar(
  20.         title: const Text('demo'),
  21.       ),
  22.       body: Center(
  23.         child: Column(
  24.           mainAxisAlignment: MainAxisAlignment.center,
  25.           children: [
  26.             ShowWidget(),
  27.             ChangeWidget(),
  28.           ],
  29.         ),
  30.       ),
  31.     );
  32.   }
  33. }
  34.  
  35. class ShowWidget extends StatelessWidget {
  36.   ShowWidget({Key? key}) : super(key: key);
  37.   final Controller c = Controller.to;
  38.  
  39.   @override
  40.   Widget build(BuildContext context) {
  41.     return Container(
  42.       height: 300,
  43.       width: 300,
  44.       color: Colors.red,
  45.       child: (Obx(
  46.         () => ItemsList(numbers: c.numbers),
  47.       )),
  48.     );
  49.   }
  50. }
  51.  
  52. class ItemsList extends StatelessWidget {
  53.   final List<int> numbers;
  54.  
  55.   ItemsList({required this.numbers, Key? key})
  56.       : super(key: key);
  57.  
  58.   @override
  59.   Widget build(BuildContext context) {
  60.     return Column(
  61.       children: [
  62.         Text('There are ${numbers.length} numbers'),
  63.         Text(numbers.map((n) => n.toString()).join(", ")),
  64.       ],
  65.     );
  66.   }
  67. }
  68.  
  69. class ChangeWidget extends StatelessWidget {
  70.   ChangeWidget({Key? key}) : super(key: key);
  71.   final Controller c = Controller.to;
  72.   final randGenerator = Random();
  73.  
  74.   @override
  75.   Widget build(BuildContext context) {
  76.     return Container(
  77.       height: 300,
  78.       width: 300,
  79.       color: Colors.green,
  80.       child: Center(
  81.         child: Column(
  82.           children: [
  83.             ElevatedButton(
  84.               onPressed: () {
  85.                 c.numbers.add(randGenerator.nextInt(100));
  86.               },
  87.               child: const Text('add number'),
  88.             ),
  89.             ElevatedButton(
  90.               onPressed: () {
  91.                 c.numbers.clear();
  92.               },
  93.               child: const Text('reset numbers'),
  94.             ),
  95.             ElevatedButton(
  96.               onPressed: () {
  97.                 c.numbers.sort();
  98.               },
  99.               child: const Text('sort numbers'),
  100.             ),
  101.           ],
  102.         ),
  103.       ),
  104.     );
  105.   }
  106. }
  107.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement