Flutter Navigator路由,返回,替换路由及返回指定页面


【学习 路由页面跳转】 查看.

Navigator.pop(context);   //最简单的返回
Navigator.popAndPushNamed(context, routeName);    //退出当前页面,并添加新的页面 (先删后加)
Navigator.pushNamedAndRemoveUntil( context, newRouteName, (route) => false); //销毁栈内所有页面并跳转
Navigator.pushReplacement(context, newRoute);  //将跳转页替换掉当前页 (先加后删)
Navigator.pushReplacementNamed(context, routeName)   //以命名路由方式跳转 同上

使用路由跳转到页面后 返回其原来页面的操作

1.pop 返回

Navigator.pop(context);

回到原页面,相当于点击返回按钮

2.替换路由

Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => intentPage(),));
Navigator.pushReplacementNamed(context, "/intentPage");

以命名方式跳转 必须在主页 main 的MaterialApp中声明命名

child: MaterialApp(
        routes: {
          "/intentPage":(context)=>intentPage(),
        },
    ));

替换路由 intentPage为要跳转的页面(page3) 可以理解为:page1=>page2=>page3 ,用page3替换page2 返回直接跳转到page1

3.返回到指定页面 (栈内页面全部销毁,然后将返回页面置顶)

"/"为命名路由 route == null 将站内页面销毁 并添加跳转页面

onPressed: () {
	 Navigator.pushNamedAndRemoveUntil(
	      context, "/", (route) => route == null);
},

或另一种写法

onPressed: () {
   	 Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context) => BottomNavigatorTest(),), (route) => route == null)
},

结尾

还有两个不太常用的

Navigator.maybePop(context); //能退出则退出 首页调用maybePop()是不会退出的

Navigator.of(context).canPop();会返回一个boolean值,表示当前页面是否可以退出

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值