入坑进行时。。
完整示例代码
前言,在lib中创建一个router的文件夹
1
2
3
4
5
6
7
8
|
import 'package:fluro/fluro.dart';
// import 'package:flutter/material.dart';
class Application {
static Router router;
}
|
1
2
3
4
5
6
7
8
9
10
11
|
// 主入口文件中 初始化 需要定义
MyApp(){
// 此处用的是 fluro
final router = new Router();
// 以下调用封装的样式
Routers.configureRoutes(router);
Application.router = router;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import 'package:fluro/fluro.dart';
import 'package:app/view/index.dart';
import 'package:app/view/morePage.dart';
var homeHandler = new Handler(
handlerFunc: (BuildContext, Map<String, List<String>> params) {
return new AppIndexPage();
}
);
var moreHandler = new Handler(
handlerFunc: (BuildContext, Map<String, List<String>> params) {
return new MorePage();
}
);
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:app/routers/router-handle.dart';
class Routers {
static String home = '/';
static String moerPage = '/morepage';
static void configureRoutes(Router router) {
// List widgetDemosList = new WidgetDemoList().getDemos();
router.notFoundHandler = new Handler(
handlerFunc: (BuildContext context, Map<String, List<String>> params) {
}
);
router.define(home, handler: homeHandler);
router.define(moerPage, handler: moreHandler);
}
}
|
// 调用
1
2
3
|
// 两种调用方式
Application.router.navigateTo(context, '/morepage');
Navigator.of(context).pushNamed('/morepage');
|
过程分解
1. 全局定义一个router 此处两步在做
(1) application 中 static
*(2) 主入口中定义router的final *
2.要把page的handle定义出来
3.定义路由的名称