Mounir-Bouaiche

Update example app

1 -/*import 'package:flutter/widgets.dart'; 1 +import 'package:flutter/widgets.dart';
2 import 'src/first_method.dart' as firstMethod; 2 import 'src/first_method.dart' as firstMethod;
3 import 'src/second_method.dart' as secondMethod; 3 import 'src/second_method.dart' as secondMethod;
4 4
@@ -6,106 +6,3 @@ void main() { @@ -6,106 +6,3 @@ void main() {
6 const method = int.fromEnvironment('method', defaultValue: 1); 6 const method = int.fromEnvironment('method', defaultValue: 1);
7 runApp(method == 1 ? firstMethod.MyApp() : secondMethod.MyApp()); 7 runApp(method == 1 ? firstMethod.MyApp() : secondMethod.MyApp());
8 } 8 }
9 -*/  
10 -  
11 -import 'dart:async';  
12 -  
13 -import 'package:flutter/material.dart';  
14 -import 'package:flutter_screenutil/flutter_screenutil.dart';  
15 -  
16 -void main() {  
17 - runApp(ScreenUtilInit(  
18 - builder: (child) => MaterialApp(  
19 - key: GlobalObjectKey('screenutil'),  
20 - theme: ThemeData(  
21 - textTheme: TextTheme(  
22 - bodyText2: TextStyle(fontSize: 32.sp),  
23 - ),  
24 - ),  
25 - home: child,  
26 - ),  
27 - child: ThirdPage(),  
28 - ));  
29 -}  
30 -  
31 -class MyStatelessElement<T extends TestPage> extends StatelessElement {  
32 - MyStatelessElement(T widget) : super(widget);  
33 -  
34 - @override  
35 - T get widget => super.widget as T;  
36 -  
37 - @override  
38 - void mount(Element? parent, Object? newSlot) {  
39 - super.mount(parent, newSlot);  
40 - print('${widget.text()} is mounted');  
41 - }  
42 -  
43 - @override  
44 - void unmount() {  
45 - print('${widget.text()} is unmounted');  
46 - super.unmount();  
47 - }  
48 -}  
49 -  
50 -abstract class TestPage extends StatelessWidget {  
51 - String text() => runtimeType.toString();  
52 -  
53 - Widget goto();  
54 -  
55 - @override  
56 - StatelessElement createElement() => MyStatelessElement(this);  
57 -  
58 - @override  
59 - Widget build(BuildContext context) {  
60 - Timer(const Duration(seconds: 5), () {  
61 - Navigator.of(context).pushAndRemoveUntil(  
62 - MaterialPageRoute(builder: (context) => goto()),  
63 - (route) => false,  
64 - );  
65 - });  
66 - return Scaffold(  
67 - body: SafeArea(  
68 - child: Padding(  
69 - padding: const EdgeInsets.all(20).r,  
70 - child: Column(  
71 - mainAxisSize: MainAxisSize.min,  
72 - children: [  
73 - TextField(),  
74 - Text(  
75 - text(),  
76 - style: TextStyle(fontSize: 32.sp),  
77 - ),  
78 - Text(text()),  
79 - Expanded(  
80 - child: ListView.separated(  
81 - shrinkWrap: true,  
82 - itemBuilder: (context, index) => Text('$index'),  
83 - separatorBuilder: (_, __) => Container(  
84 - height: 50.h,  
85 - color: Colors.green,  
86 - ),  
87 - itemCount: 10,  
88 - ),  
89 - ),  
90 - ],  
91 - ),  
92 - ),  
93 - ),  
94 - );  
95 - }  
96 -}  
97 -  
98 -class FirstPage extends TestPage {  
99 - @override  
100 - Widget goto() => SecondPage();  
101 -}  
102 -  
103 -class SecondPage extends TestPage {  
104 - @override  
105 - Widget goto() => FirstPage();  
106 -}  
107 -  
108 -class ThirdPage extends TestPage {  
109 - @override  
110 - Widget goto() => FirstPage();  
111 -}  
@@ -57,6 +57,7 @@ class MyThemedApp extends StatelessWidget { @@ -57,6 +57,7 @@ class MyThemedApp extends StatelessWidget {
57 debugShowCheckedModeBanner: false, 57 debugShowCheckedModeBanner: false,
58 title: 'First Method (Themed)', 58 title: 'First Method (Themed)',
59 builder: (ctx, child) { 59 builder: (ctx, child) {
  60 + ScreenUtil.init(ctx);
60 return Theme( 61 return Theme(
61 data: ThemeData( 62 data: ThemeData(
62 primarySwatch: Colors.blue, 63 primarySwatch: Colors.blue,
@@ -56,6 +56,7 @@ class MyThemedApp extends StatelessWidget { @@ -56,6 +56,7 @@ class MyThemedApp extends StatelessWidget {
56 debugShowCheckedModeBanner: false, 56 debugShowCheckedModeBanner: false,
57 title: '第二种方法(带主题)', 57 title: '第二种方法(带主题)',
58 builder: (ctx, child) { 58 builder: (ctx, child) {
  59 + ScreenUtil.init(ctx);
59 return Theme( 60 return Theme(
60 data: ThemeData( 61 data: ThemeData(
61 primarySwatch: Colors.blue, 62 primarySwatch: Colors.blue,