入坑进行时。。

完整示例代码

前言,在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.定义路由的名称