Jonny Borges

put example back

1 import 'package:flutter/material.dart'; 1 import 'package:flutter/material.dart';
2 import 'package:get/get.dart'; 2 import 'package:get/get.dart';
3 3
  4 +// void main() {
  5 +// runApp(const MyApp());
  6 +// }
  7 +
  8 +// class MyApp extends StatelessWidget {
  9 +// const MyApp({Key? key}) : super(key: key);
  10 +
  11 +// @override
  12 +// Widget build(BuildContext context) {
  13 +// return GetMaterialApp(
  14 +// theme: ThemeData(useMaterial3: true),
  15 +// debugShowCheckedModeBanner: false,
  16 +// enableLog: true,
  17 +// logWriterCallback: Logger.write,
  18 +// initialRoute: AppPages.INITIAL,
  19 +// getPages: AppPages.routes,
  20 +// locale: TranslationService.locale,
  21 +// fallbackLocale: TranslationService.fallbackLocale,
  22 +// translations: TranslationService(),
  23 +// );
  24 +// }
  25 +// }
  26 +
  27 +/// Nav 2 snippet
4 void main() { 28 void main() {
5 - runApp(MyApp()); 29 + runApp(const MyApp());
6 } 30 }
7 31
8 class MyApp extends StatelessWidget { 32 class MyApp extends StatelessWidget {
9 -// This widget is the root of your application. 33 + const MyApp({Key? key}) : super(key: key);
  34 +
10 @override 35 @override
11 Widget build(BuildContext context) { 36 Widget build(BuildContext context) {
12 return GetMaterialApp( 37 return GetMaterialApp(
13 - title: 'Scaffold demo',  
14 - theme: ThemeData(  
15 - primarySwatch: Colors.blue,  
16 - ),  
17 - home: MyHomePage(), 38 + getPages: [
  39 + GetPage(
  40 + participatesInRootNavigator: true,
  41 + name: '/first',
  42 + page: () => const First()),
  43 + GetPage(
  44 + name: '/second',
  45 + page: () => const Second(),
  46 + transition: Transition.downToUp,
  47 + ),
  48 + GetPage(
  49 + name: '/third',
  50 + page: () => const Third(),
  51 + ),
  52 + ],
18 debugShowCheckedModeBanner: false, 53 debugShowCheckedModeBanner: false,
19 ); 54 );
20 } 55 }
21 } 56 }
22 57
23 -class MyHomePage extends StatelessWidget { 58 +class FirstController extends GetxController {
  59 + @override
  60 + void onClose() {
  61 + print('on close first');
  62 + super.onClose();
  63 + }
  64 +}
  65 +
  66 +class First extends StatelessWidget {
  67 + const First({Key? key}) : super(key: key);
  68 +
24 @override 69 @override
25 Widget build(BuildContext context) { 70 Widget build(BuildContext context) {
  71 + print('First rebuild');
  72 + Get.put(FirstController());
26 return Scaffold( 73 return Scaffold(
27 appBar: AppBar( 74 appBar: AppBar(
28 - title: Text('Test'),  
29 - centerTitle: true,  
30 - backgroundColor: Colors.green,  
31 - ),  
32 - bottomNavigationBar: SizedBox(  
33 - width: double.infinity,  
34 - child: ElevatedButton(  
35 - child: Text('Tap me when Snackbar appears'), 75 + title: const Text('page one'),
  76 + leading: IconButton(
  77 + icon: const Icon(Icons.more),
36 onPressed: () { 78 onPressed: () {
37 - print('This should clicked'); 79 + Get.snackbar(
  80 + 'title',
  81 + "message",
  82 + mainButton:
  83 + TextButton(onPressed: () {}, child: const Text('button')),
  84 + isDismissible: true,
  85 + duration: Duration(seconds: 5),
  86 + snackbarStatus: (status) => print(status),
  87 + );
  88 + // print('THEME CHANGED');
  89 + // Get.changeTheme(
  90 + // Get.isDarkMode ? ThemeData.light() : ThemeData.dark());
38 }, 91 },
39 ), 92 ),
40 ), 93 ),
41 body: Center( 94 body: Center(
42 - child: ElevatedButton(  
43 - child: Text('Open Snackbar'),  
44 - onPressed: () {  
45 - Get.snackbar(  
46 - "Snackbar Showed",  
47 - "Please click the button on BottomNavigationBar",  
48 - icon: Icon(Icons.check, color: Colors.green),  
49 - backgroundColor: Colors.white,  
50 - snackStyle: SnackStyle.floating,  
51 - borderRadius: 20,  
52 - isDismissible: false,  
53 - snackPosition: SnackPosition.bottom,  
54 - margin: EdgeInsets.fromLTRB(50, 15, 50, 15),  
55 - );  
56 - }, 95 + child: SizedBox(
  96 + height: 300,
  97 + width: 300,
  98 + child: ElevatedButton(
  99 + onPressed: () {
  100 + Get.toNamed('/second?id=123');
  101 + },
  102 + child: const Text('next screen'),
  103 + ),
  104 + ),
  105 + ),
  106 + );
  107 + }
  108 +}
  109 +
  110 +class SecondController extends GetxController {
  111 + final textEdit = TextEditingController();
  112 + @override
  113 + void onClose() {
  114 + print('on close second');
  115 + textEdit.dispose();
  116 + super.onClose();
  117 + }
  118 +}
  119 +
  120 +class Second extends StatelessWidget {
  121 + const Second({Key? key}) : super(key: key);
  122 +
  123 + @override
  124 + Widget build(BuildContext context) {
  125 + final controller = Get.put(SecondController());
  126 + print('second rebuild');
  127 + return Scaffold(
  128 + appBar: AppBar(
  129 + title: Text('page two ${Get.parameters["id"]}'),
  130 + ),
  131 + body: Center(
  132 + child: Column(
  133 + children: [
  134 + Expanded(
  135 + child: TextField(
  136 + controller: controller.textEdit,
  137 + )),
  138 + SizedBox(
  139 + height: 300,
  140 + width: 300,
  141 + child: ElevatedButton(
  142 + onPressed: () {},
  143 + child: const Text('next screen'),
  144 + ),
  145 + ),
  146 + ],
  147 + ),
  148 + ),
  149 + );
  150 + }
  151 +}
  152 +
  153 +class Third extends StatelessWidget {
  154 + const Third({Key? key}) : super(key: key);
  155 +
  156 + @override
  157 + Widget build(BuildContext context) {
  158 + return Scaffold(
  159 + backgroundColor: Colors.red,
  160 + appBar: AppBar(
  161 + title: const Text('page three'),
  162 + ),
  163 + body: Center(
  164 + child: SizedBox(
  165 + height: 300,
  166 + width: 300,
  167 + child: ElevatedButton(
  168 + onPressed: () {},
  169 + child: const Text('go to first screen'),
  170 + ),
57 ), 171 ),
58 ), 172 ),
59 ); 173 );