Showing
7 changed files
with
153 additions
and
137 deletions
1 | +## [5.0.0-release-candidate-4] | ||
2 | +-Fix changeThemeMode and RxList | ||
3 | + | ||
4 | +## [5.0.0-release-candidate-3] | ||
5 | +-Fix changeTheme | ||
6 | + | ||
1 | ## [5.0.0-release-candidate-2] | 7 | ## [5.0.0-release-candidate-2] |
2 | This version adds built-in support for animation in Flutter in an easy, clear way, and without having to create a StatefulWidget with controllers and animations. All you need to do is call the name of the animation. | 8 | This version adds built-in support for animation in Flutter in an easy, clear way, and without having to create a StatefulWidget with controllers and animations. All you need to do is call the name of the animation. |
3 | 9 |
@@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
4 | # This file should be version controlled. | 4 | # This file should be version controlled. |
5 | 5 | ||
6 | version: | 6 | version: |
7 | - revision: 9944297138845a94256f1cf37beb88ff9a8e811a | 7 | + revision: c07f7888888435fd9df505aa2efc38d3cf65681b |
8 | channel: stable | 8 | channel: stable |
9 | 9 | ||
10 | project_type: app | 10 | project_type: app |
@@ -13,26 +13,26 @@ project_type: app | @@ -13,26 +13,26 @@ project_type: app | ||
13 | migration: | 13 | migration: |
14 | platforms: | 14 | platforms: |
15 | - platform: root | 15 | - platform: root |
16 | - create_revision: 9944297138845a94256f1cf37beb88ff9a8e811a | ||
17 | - base_revision: 9944297138845a94256f1cf37beb88ff9a8e811a | 16 | + create_revision: c07f7888888435fd9df505aa2efc38d3cf65681b |
17 | + base_revision: c07f7888888435fd9df505aa2efc38d3cf65681b | ||
18 | - platform: android | 18 | - platform: android |
19 | - create_revision: 9944297138845a94256f1cf37beb88ff9a8e811a | ||
20 | - base_revision: 9944297138845a94256f1cf37beb88ff9a8e811a | 19 | + create_revision: c07f7888888435fd9df505aa2efc38d3cf65681b |
20 | + base_revision: c07f7888888435fd9df505aa2efc38d3cf65681b | ||
21 | - platform: ios | 21 | - platform: ios |
22 | - create_revision: 9944297138845a94256f1cf37beb88ff9a8e811a | ||
23 | - base_revision: 9944297138845a94256f1cf37beb88ff9a8e811a | 22 | + create_revision: c07f7888888435fd9df505aa2efc38d3cf65681b |
23 | + base_revision: c07f7888888435fd9df505aa2efc38d3cf65681b | ||
24 | - platform: linux | 24 | - platform: linux |
25 | - create_revision: 9944297138845a94256f1cf37beb88ff9a8e811a | ||
26 | - base_revision: 9944297138845a94256f1cf37beb88ff9a8e811a | 25 | + create_revision: c07f7888888435fd9df505aa2efc38d3cf65681b |
26 | + base_revision: c07f7888888435fd9df505aa2efc38d3cf65681b | ||
27 | - platform: macos | 27 | - platform: macos |
28 | - create_revision: 9944297138845a94256f1cf37beb88ff9a8e811a | ||
29 | - base_revision: 9944297138845a94256f1cf37beb88ff9a8e811a | 28 | + create_revision: c07f7888888435fd9df505aa2efc38d3cf65681b |
29 | + base_revision: c07f7888888435fd9df505aa2efc38d3cf65681b | ||
30 | - platform: web | 30 | - platform: web |
31 | - create_revision: 9944297138845a94256f1cf37beb88ff9a8e811a | ||
32 | - base_revision: 9944297138845a94256f1cf37beb88ff9a8e811a | 31 | + create_revision: c07f7888888435fd9df505aa2efc38d3cf65681b |
32 | + base_revision: c07f7888888435fd9df505aa2efc38d3cf65681b | ||
33 | - platform: windows | 33 | - platform: windows |
34 | - create_revision: 9944297138845a94256f1cf37beb88ff9a8e811a | ||
35 | - base_revision: 9944297138845a94256f1cf37beb88ff9a8e811a | 34 | + create_revision: c07f7888888435fd9df505aa2efc38d3cf65681b |
35 | + base_revision: c07f7888888435fd9df505aa2efc38d3cf65681b | ||
36 | 36 | ||
37 | # User provided section | 37 | # User provided section |
38 | 38 |
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 | -import 'lang/translation_service.dart'; | ||
5 | -import 'routes/app_pages.dart'; | ||
6 | -import 'shared/logger/logger_utils.dart'; | 4 | +// void main() { |
5 | +// runApp(const MyApp()); | ||
6 | +// } | ||
7 | + | ||
8 | +// class MyApp extends StatelessWidget { | ||
9 | +// const MyApp({Key? key}) : super(key: key); | ||
7 | 10 | ||
11 | +// @override | ||
12 | +// Widget build(BuildContext context) { | ||
13 | +// return GetMaterialApp( | ||
14 | +// debugShowCheckedModeBanner: false, | ||
15 | +// enableLog: true, | ||
16 | +// logWriterCallback: Logger.write, | ||
17 | +// initialRoute: AppPages.INITIAL, | ||
18 | +// getPages: AppPages.routes, | ||
19 | +// locale: TranslationService.locale, | ||
20 | +// fallbackLocale: TranslationService.fallbackLocale, | ||
21 | +// translations: TranslationService(), | ||
22 | +// ); | ||
23 | +// } | ||
24 | +// } | ||
25 | + | ||
26 | +/// Nav 2 snippet | ||
8 | void main() { | 27 | void main() { |
9 | runApp(const MyApp()); | 28 | runApp(const MyApp()); |
10 | } | 29 | } |
@@ -15,115 +34,103 @@ class MyApp extends StatelessWidget { | @@ -15,115 +34,103 @@ class MyApp extends StatelessWidget { | ||
15 | @override | 34 | @override |
16 | Widget build(BuildContext context) { | 35 | Widget build(BuildContext context) { |
17 | return GetMaterialApp( | 36 | return GetMaterialApp( |
37 | + getPages: [ | ||
38 | + GetPage( | ||
39 | + participatesInRootNavigator: true, | ||
40 | + name: '/first', | ||
41 | + page: () => const First()), | ||
42 | + GetPage( | ||
43 | + name: '/second', | ||
44 | + page: () => const Second(), | ||
45 | + ), | ||
46 | + GetPage( | ||
47 | + name: '/third', | ||
48 | + page: () => const Third(), | ||
49 | + ), | ||
50 | + ], | ||
18 | debugShowCheckedModeBanner: false, | 51 | debugShowCheckedModeBanner: false, |
19 | - enableLog: true, | ||
20 | - logWriterCallback: Logger.write, | ||
21 | - initialRoute: AppPages.INITIAL, | ||
22 | - getPages: AppPages.routes, | ||
23 | - locale: TranslationService.locale, | ||
24 | - fallbackLocale: TranslationService.fallbackLocale, | ||
25 | - translations: TranslationService(), | ||
26 | ); | 52 | ); |
27 | } | 53 | } |
28 | } | 54 | } |
29 | 55 | ||
30 | -/// Nav 2 snippet | ||
31 | -// void main() { | ||
32 | -// runApp(MyApp()); | ||
33 | -// } | 56 | +class First extends StatelessWidget { |
57 | + const First({Key? key}) : super(key: key); | ||
34 | 58 | ||
35 | -// class MyApp extends StatelessWidget { | ||
36 | -// MyApp({Key? key}) : super(key: key); | 59 | + @override |
60 | + Widget build(BuildContext context) { | ||
61 | + print('First rebuild'); | ||
62 | + return Scaffold( | ||
63 | + appBar: AppBar( | ||
64 | + title: const Text('page one'), | ||
65 | + leading: IconButton( | ||
66 | + icon: const Icon(Icons.more), | ||
67 | + onPressed: () { | ||
68 | + print('THEME CHANGED'); | ||
69 | + Get.changeTheme( | ||
70 | + Get.isDarkMode ? ThemeData.light() : ThemeData.dark()); | ||
71 | + }, | ||
72 | + ), | ||
73 | + ), | ||
74 | + body: Center( | ||
75 | + child: SizedBox( | ||
76 | + height: 300, | ||
77 | + width: 300, | ||
78 | + child: ElevatedButton( | ||
79 | + onPressed: () { | ||
80 | + Get.toNamed('/second?id=123'); | ||
81 | + }, | ||
82 | + child: const Text('next screen'), | ||
83 | + ), | ||
84 | + ), | ||
85 | + ), | ||
86 | + ); | ||
87 | + } | ||
88 | +} | ||
37 | 89 | ||
38 | -// @override | ||
39 | -// Widget build(BuildContext context) { | ||
40 | -// return GetMaterialApp.router( | ||
41 | -// getPages: [ | ||
42 | -// GetPage( | ||
43 | -// participatesInRootNavigator: true, | ||
44 | -// name: '/first', | ||
45 | -// page: () => First()), | ||
46 | -// GetPage( | ||
47 | -// name: '/second', | ||
48 | -// page: () => Second(), | ||
49 | -// ), | ||
50 | -// GetPage( | ||
51 | -// name: '/third', | ||
52 | -// page: () => Third(), | ||
53 | -// ), | ||
54 | -// ], | ||
55 | -// debugShowCheckedModeBanner: false, | ||
56 | -// ); | ||
57 | -// } | ||
58 | -// } | 90 | +class Second extends StatelessWidget { |
91 | + const Second({Key? key}) : super(key: key); | ||
59 | 92 | ||
60 | -// class First extends StatelessWidget { | ||
61 | -// @override | ||
62 | -// Widget build(BuildContext context) { | ||
63 | -// return Scaffold( | ||
64 | -// appBar: AppBar( | ||
65 | -// title: Text('page one'), | ||
66 | -// leading: IconButton( | ||
67 | -// icon: Icon(Icons.more), | ||
68 | -// onPressed: () { | ||
69 | -// Get.changeTheme( | ||
70 | -// context.isDarkMode ? ThemeData.light() : ThemeData.dark()); | ||
71 | -// }, | ||
72 | -// ), | ||
73 | -// ), | ||
74 | -// body: Center( | ||
75 | -// child: Container( | ||
76 | -// height: 300, | ||
77 | -// width: 300, | ||
78 | -// child: ElevatedButton( | ||
79 | -// onPressed: () {}, | ||
80 | -// child: Text('next screen'), | ||
81 | -// ), | ||
82 | -// ), | ||
83 | -// ), | ||
84 | -// ); | ||
85 | -// } | ||
86 | -// } | 93 | + @override |
94 | + Widget build(BuildContext context) { | ||
95 | + print('second rebuild'); | ||
96 | + return Scaffold( | ||
97 | + appBar: AppBar( | ||
98 | + title: Text('page two ${Get.parameters["id"]}'), | ||
99 | + ), | ||
100 | + body: Center( | ||
101 | + child: SizedBox( | ||
102 | + height: 300, | ||
103 | + width: 300, | ||
104 | + child: ElevatedButton( | ||
105 | + onPressed: () {}, | ||
106 | + child: const Text('next screen'), | ||
107 | + ), | ||
108 | + ), | ||
109 | + ), | ||
110 | + ); | ||
111 | + } | ||
112 | +} | ||
87 | 113 | ||
88 | -// class Second extends StatelessWidget { | ||
89 | -// @override | ||
90 | -// Widget build(BuildContext context) { | ||
91 | -// return Scaffold( | ||
92 | -// appBar: AppBar( | ||
93 | -// title: Text('page two ${Get.parameters["id"]}'), | ||
94 | -// ), | ||
95 | -// body: Center( | ||
96 | -// child: Container( | ||
97 | -// height: 300, | ||
98 | -// width: 300, | ||
99 | -// child: ElevatedButton( | ||
100 | -// onPressed: () {}, | ||
101 | -// child: Text('next screen'), | ||
102 | -// ), | ||
103 | -// ), | ||
104 | -// ), | ||
105 | -// ); | ||
106 | -// } | ||
107 | -// } | 114 | +class Third extends StatelessWidget { |
115 | + const Third({Key? key}) : super(key: key); | ||
108 | 116 | ||
109 | -// class Third extends StatelessWidget { | ||
110 | -// @override | ||
111 | -// Widget build(BuildContext context) { | ||
112 | -// return Scaffold( | ||
113 | -// backgroundColor: Colors.red, | ||
114 | -// appBar: AppBar( | ||
115 | -// title: Text('page three'), | ||
116 | -// ), | ||
117 | -// body: Center( | ||
118 | -// child: Container( | ||
119 | -// height: 300, | ||
120 | -// width: 300, | ||
121 | -// child: ElevatedButton( | ||
122 | -// onPressed: () {}, | ||
123 | -// child: Text('go to first screen'), | ||
124 | -// ), | ||
125 | -// ), | ||
126 | -// ), | ||
127 | -// ); | ||
128 | -// } | ||
129 | -// } | 117 | + @override |
118 | + Widget build(BuildContext context) { | ||
119 | + return Scaffold( | ||
120 | + backgroundColor: Colors.red, | ||
121 | + appBar: AppBar( | ||
122 | + title: const Text('page three'), | ||
123 | + ), | ||
124 | + body: Center( | ||
125 | + child: SizedBox( | ||
126 | + height: 300, | ||
127 | + width: 300, | ||
128 | + child: ElevatedButton( | ||
129 | + onPressed: () {}, | ||
130 | + child: const Text('go to first screen'), | ||
131 | + ), | ||
132 | + ), | ||
133 | + ), | ||
134 | + ); | ||
135 | + } | ||
136 | +} |
@@ -438,7 +438,7 @@ class GetRootState extends State<GetRoot> with WidgetsBindingObserver { | @@ -438,7 +438,7 @@ class GetRootState extends State<GetRoot> with WidgetsBindingObserver { | ||
438 | } | 438 | } |
439 | 439 | ||
440 | Transition? getThemeTransition() { | 440 | Transition? getThemeTransition() { |
441 | - final platform = Get.theme.platform; | 441 | + final platform = context.theme.platform; |
442 | final matchingTransition = | 442 | final matchingTransition = |
443 | Get.theme.pageTransitionsTheme.builders[platform]; | 443 | Get.theme.pageTransitionsTheme.builders[platform]; |
444 | switch (matchingTransition) { | 444 | switch (matchingTransition) { |
@@ -489,7 +489,10 @@ class GetRootState extends State<GetRoot> with WidgetsBindingObserver { | @@ -489,7 +489,10 @@ class GetRootState extends State<GetRoot> with WidgetsBindingObserver { | ||
489 | } | 489 | } |
490 | 490 | ||
491 | void update() { | 491 | void update() { |
492 | - setState(() {}); | 492 | + context.visitAncestorElements((element) { |
493 | + element.markNeedsBuild(); | ||
494 | + return false; | ||
495 | + }); | ||
493 | } | 496 | } |
494 | 497 | ||
495 | GlobalKey<NavigatorState> get key => rootDelegate.navigatorKey; | 498 | GlobalKey<NavigatorState> get key => rootDelegate.navigatorKey; |
@@ -48,7 +48,7 @@ class RxList<E> extends GetListenable<List<E>> | @@ -48,7 +48,7 @@ class RxList<E> extends GetListenable<List<E>> | ||
48 | @override | 48 | @override |
49 | RxList<E> operator +(Iterable<E> val) { | 49 | RxList<E> operator +(Iterable<E> val) { |
50 | addAll(val); | 50 | addAll(val); |
51 | - refresh(); | 51 | + // refresh(); |
52 | return this; | 52 | return this; |
53 | } | 53 | } |
54 | 54 | ||
@@ -113,11 +113,11 @@ class RxList<E> extends GetListenable<List<E>> | @@ -113,11 +113,11 @@ class RxList<E> extends GetListenable<List<E>> | ||
113 | @override | 113 | @override |
114 | Iterable<E> get reversed => value.reversed; | 114 | Iterable<E> get reversed => value.reversed; |
115 | 115 | ||
116 | - @override | ||
117 | - set value(List<E> val) { | ||
118 | - value = val; | ||
119 | - refresh(); | ||
120 | - } | 116 | + // @override |
117 | + // set value(List<E> val) { | ||
118 | + // value = val; | ||
119 | + // refresh(); | ||
120 | + // } | ||
121 | 121 | ||
122 | @override | 122 | @override |
123 | Iterable<E> where(bool Function(E) test) { | 123 | Iterable<E> where(bool Function(E) test) { |
@@ -8,7 +8,7 @@ class RxSet<E> extends GetListenable<Set<E>> | @@ -8,7 +8,7 @@ class RxSet<E> extends GetListenable<Set<E>> | ||
8 | /// inside the List, | 8 | /// inside the List, |
9 | RxSet<E> operator +(Set<E> val) { | 9 | RxSet<E> operator +(Set<E> val) { |
10 | addAll(val); | 10 | addAll(val); |
11 | - refresh(); | 11 | + //refresh(); |
12 | return this; | 12 | return this; |
13 | } | 13 | } |
14 | 14 | ||
@@ -25,13 +25,13 @@ class RxSet<E> extends GetListenable<Set<E>> | @@ -25,13 +25,13 @@ class RxSet<E> extends GetListenable<Set<E>> | ||
25 | // // return _value; | 25 | // // return _value; |
26 | // } | 26 | // } |
27 | 27 | ||
28 | - @override | ||
29 | - @protected | ||
30 | - set value(Set<E> val) { | ||
31 | - if (value == val) return; | ||
32 | - value = val; | ||
33 | - refresh(); | ||
34 | - } | 28 | + // @override |
29 | + // @protected | ||
30 | + // set value(Set<E> val) { | ||
31 | + // if (value == val) return; | ||
32 | + // value = val; | ||
33 | + // refresh(); | ||
34 | + // } | ||
35 | 35 | ||
36 | @override | 36 | @override |
37 | bool add(E value) { | 37 | bool add(E value) { |
1 | name: get | 1 | name: get |
2 | description: Open screens/snackbars/dialogs without context, manage states and inject dependencies easily with GetX. | 2 | description: Open screens/snackbars/dialogs without context, manage states and inject dependencies easily with GetX. |
3 | -version: 5.0.0-release-candidate-2 | 3 | +version: 5.0.0-release-candidate-4 |
4 | homepage: https://github.com/jonataslaw/getx | 4 | homepage: https://github.com/jonataslaw/getx |
5 | 5 | ||
6 | environment: | 6 | environment: |
-
Please register or login to post a comment