路由傳參
route.dart
import 'package:fluro/fluro.dart';
//添加頁面
import 'package:m/pages/loginPage.dart';
import 'package:m/pages/homePage.dart';
import 'package:m/pages/searchPage.dart';
class Routes {
static Router router;
static void configureRoutes(Router router) {
//登陸頁
router.define('/', handler: new Handler(handlerFunc: (context, params) {
return new LoginPage();
}));
//主頁
router.define('/home', handler: new Handler(handlerFunc: (context, params) {
return new HomePage();
}));
//搜索頁
router.define('/search/:data', handler: new Handler(handlerFunc: (context, params) {
return SearchPage(params['data'][0]);
}));
Routes.router = router;
}
}
配置 main.dart
import 'package:flutter/material.dart';
import 'package:fluro/fluro.dart';
void main() {
///初始化並配置路由
final router = new Router();
Routes.configureRoutes(router);
return runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(onGenerateRoute: Routes.router.generator);
}
}
login跳轉home ,不帶參數
import 'package:flutter/material.dart';
import 'package:fluro/fluro.dart';
//跳轉主頁
Routes.router.navigateTo(context, '/home', //跳轉路徑
transition: TransitionType.inFromRight //過場效果
);
跳轉search,帶參數
home.dart
//home.dart
var kind = 'ssss';
Routes.router.navigateTo(
context, '/search/$kind', //跳轉路徑
transition: TransitionType.fadeIn //過場效果
);
search.dart
//search.dart
class SearchPage extends StatefulWidget {
//接受傳值
String _result;
SearchPage(this._result);
@override
_SearchPageState createState() => _SearchPageState();
}
class _SearchPageState extends State<SearchPage> {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Color(constant.mainColor),
title: Text(widget._result)
),
body:Text(widget._result)
)
}
}
ps:找不到pop傳參的。難受。只能用之前的navigator.pop
等找到了就補上