flutter 学习记录fluro的使用
学习flutter已经有两个月了,也算是对flutter有点了解。
今天来记录一下flutter fluro路由管理的使用
1.引入fluro
在pubspec.yaml文件里,直接注册版本依赖,代码如下。(注意要最新版)
dependencies:
fluro: ^1.6.3
2.初始化fluro
在一个类里声明一个对象
class Application{
static Router router;
}
3.新建route_handlers.dart文件,用于初始化跳转到各个页面的handle,并获取到上个页面传递过来的值,然后在初始化要跳转到的页面.
//项目详情页
Handler detailsHandler = Handler(
handlerFunc: (BuildContext context, Map<String, List<String>> params) {
String itemId = params['id'].first;
return ProjectDetail(itemId);
});
4.新建routes.dart文件,用于绑定路由地址和对应的handler.
import 'package:flutter/material.dart';
import './router_handler.dart';
import 'package:fluro/fluro.dart';
class Routes {
static String root = '/';
static String projectDetail = '/detail';
static void configureRoutes(Router router) {
router.notFoundHandler = new Handler(
handlerFunc: (BuildContext context, Map<String, List<String>> params) {
print('ERROR====>ROUTE WAS NOT FONUND!!!');
});
router.define(projectDetail, handler: detailsHandler);
//后面还可以添加
}
}
5.初始化配置
在main.dart里添加
final router = Router();
Routes.configureRoutes(router);
Application.router = router;
6.使用
无参跳转
Application.router.navigateTo(context, url);
有参跳转
Application.router.navigateTo(
context, “/productDetail?productId=${product.productId}”);
路由跳转都是进栈操作,原有页面没有销毁。如果想跳转时同时销毁页面(适用于退出登录)
Application.router.navigateTo(context, url,clearStack: true);