Flutter 路由跳转 fluro
地址:https://pub.flutter-io.cn/packages/fluro
dependencies:
fluro: ^2.0.4
Routes管理类
import 'package:common_lib/fluro/router_handler.dart';
import 'package:fluro/fluro.dart';
/**
* 路由管理
*/
class Routes {
// static Router router;
// 根路径
static String root = "/";
// 设置页面
static String settings = "/setting";
// 网页加载
static String webView = "/webView";
// 配置route
static void configureRoutes(FluroRouter router) {
// 未发现对应route 处理
router.notFoundHandler = RouterHandler.notFoundHandler;
// router.define(root, handler: handler)
router.define(settings, handler: RouterHandler.settingHandler);
router.define(webView, handler: RouterHandler.webViewHandler);
}
}
handler管理类 router_handler
import 'package:common_lib/pages/NotFoundPage.dart';
import 'package:common_lib/pages/home_page.dart';
import 'package:common_lib/pages/setting_page.dart';
import 'package:common_lib/pages/webview_page.dart';
import 'package:fluro/fluro.dart';
class RouterHandler {
// 根路径
static var rootHandler = Handler(handlerFunc: (context,params) {
return HomePage();
});
// 页面不存在
static var notFoundHandler = Handler(handlerFunc: (context,params) {
return NotFoundPage();
});
// 设置页面 不带参数
static var settingHandler = Handler(handlerFunc: (context,params) {
return SettingPage();
});
// 网页加载带参数 -示例:传多个字符串参数
static var webViewHandler = Handler(handlerFunc: (context,params) {
// params 内容为 {title: [我是标题哈哈哈],url: [https://www.baidu.com]}
String? titleStr = params['title']?.first;
String? urlStr = params['url']?.first;
return WebViewPage(title: "$titleStr", url: "$urlStr");
});
}
配置router
MyApp() {
// 注册初始化fluro
final router = Router();
Routers.configureRoutes(router);
Routers.router = router;
}
跳转
//对象需要转String
String itemDataJson = FluroConvertUtils.object2string(
_bulletinsList[index]);
Routers.navigateTo(context, Routers.messageDetailPage,
params: {
'bar_title': "Detail",
'item_data': itemDataJson,
});

浙公网安备 33010602011771号