1
+ import 'package:flutter/material.dart' ;
2
+ import 'navigator_util.dart' ;
3
+
4
+ void main () => runApp (MyApp ());
5
+
6
+
7
+
8
+
9
+ RouteManager manager;
10
+ void data (BuildContext context){
11
+ manager = new RouteManager (context);
12
+
13
+ Map <String ,Widget > routes = {
14
+ '/data2' : Page2 (),
15
+ '/data3' : Page3 (),
16
+ '/data4' : Page4 (),
17
+ };
18
+ manager.putRoutesMap (routes);
19
+ }
20
+
21
+
22
+ RouteManager getData (){
23
+ return manager;
24
+ }
25
+
26
+
27
+ class MyApp extends StatelessWidget {
28
+
29
+
30
+ @override
31
+ Widget build (BuildContext context) {
32
+
33
+ data (context);
34
+
35
+ return MaterialApp (
36
+ title: 'Flutter Demo' ,
37
+ theme: ThemeData (
38
+ primarySwatch: Colors .blue,
39
+ ),
40
+ home: MyHomePage (title: 'Flutter Demo Home Page' ),
41
+ // 让路由管理更方便一些
42
+ routes: getData ().getRoutes (),
43
+ );
44
+ }
45
+ }
46
+
47
+ class MyHomePage extends StatefulWidget {
48
+ MyHomePage ({Key key, this .title}) : super (key: key);
49
+
50
+ final String title;
51
+
52
+ @override
53
+ _MyHomePageState createState () => _MyHomePageState ();
54
+ }
55
+
56
+ class _MyHomePageState extends State <MyHomePage > {
57
+
58
+ @override
59
+ Widget build (BuildContext context) {
60
+ return Scaffold (
61
+ appBar: AppBar (
62
+ title: Text (widget.title),
63
+ ),
64
+ body: Center (
65
+ child: Column (
66
+ mainAxisAlignment: MainAxisAlignment .center,
67
+ children: < Widget > [
68
+ RaisedButton (
69
+ onPressed: (){
70
+ //Navigator.of(context).pushNamed('/data2');
71
+ getData ().pushNamed ('/data2' );
72
+ },
73
+ child: Text ('打开Page2' ),
74
+ ),
75
+ RaisedButton (
76
+ onPressed: (){
77
+ //Navigator.of(context).pushNamed('/data3');
78
+ getData ().pushNamed ('/data3' );
79
+ },
80
+ child: Text ('打开Page3' ),
81
+ ),
82
+ RaisedButton (
83
+ onPressed: (){
84
+ //Navigator.of(context).pushNamed('/data4');
85
+ getData ().pushNamed ('/data4' );
86
+ },
87
+ child: Text ('打开Page4' ),
88
+ ),
89
+ ],
90
+ ),
91
+ ),
92
+ floatingActionButton: FloatingActionButton (
93
+ onPressed: (){},
94
+ tooltip: 'Increment' ,
95
+ child: Icon (Icons .add),
96
+ ),
97
+ );
98
+ }
99
+ }
100
+
101
+
102
+ class Page2 extends StatefulWidget {
103
+ @override
104
+ _Page2State createState () => _Page2State ();
105
+ }
106
+
107
+ class _Page2State extends State <Page2 > {
108
+ @override
109
+ Widget build (BuildContext context) {
110
+ return Text ('hello' );
111
+ }
112
+ }
113
+
114
+ class Page3 extends StatefulWidget {
115
+ @override
116
+ _Page3State createState () => _Page3State ();
117
+ }
118
+
119
+ class _Page3State extends State <Page3 > {
120
+ @override
121
+ Widget build (BuildContext context) {
122
+ return Text ('hello' );
123
+ }
124
+ }
125
+
126
+ class Page4 extends StatefulWidget {
127
+ @override
128
+ _Page4State createState () => _Page4State ();
129
+ }
130
+
131
+ class _Page4State extends State <Page4 > {
132
+ @override
133
+ Widget build (BuildContext context) {
134
+ return Text ('hello' );
135
+ }
136
+ }
0 commit comments