flutter 路由配置多种跳转与传参

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});  //重构
  ...

你可能感兴趣的:(Flutter)