main.dart文件
//1. 引入路由跳转的页面
import 'package:app_ftr/pages/Page1.dart';
import 'package:app_ftr/pages/Page2.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
debugShowCheckedModeBanner: false, //隐藏debug
//路由 (路由表匹配不到就走路由守卫)
initialRoute: '/',
routes: {
'/Page1': (context) => Page1(), //2. 配置跳转页面
'/page2': (context) => Page2()
//传参
'/page2': (context,{arguments}) => Page2(arguments:arguments),
},
)
}
//跳转方法
//普通push路由跳转方法 都可传参
Navigator.pushNamed(context, "/Page2");
//PushReplacementNamed替换当前路由跳转方法,新push进入的route会替换原来route。
Navigator.of(context).pushReplacementNamed('/Page2');
//删除当前路由并跳转到下一路由
Navigator.of(context).popAndPushNamed('/Page2');
//删除/Page1路由后面的所有路由 并跳转到/Page2路由
Navigator.of(context).pushNamedAndRemoveUntil('/Page2', ModalRoute.withName('/Page1'));
//跳转传参
Navigator.pushNamed(context, "/page2",arguments: {"id":102});
//接受参数
class Page2 extends StatefulWidget {
final arguments; //定义一个变量
Page2({this.arguments}); //重构
...