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});  //重构
  ...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值