欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-22 09:45:21
Flutter 路由,返回,替换路由及返回指定页面1.pop 返回2.替换路由3.返回到指定页面 (栈内页面全部销毁,然后将返回页面置顶)结尾【学习 路由页面跳转】 查看.Navigator.pop(context);   //最简单的返回Navigator.popAndPushNamed(context, routeName);    //退出当前页面,并添加新的页面 (先删后加)Navigator.pushNamedAndRemoveUntil( context, newRouteName,...


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

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值,表示当前页面是否可以退出

本文地址:https://blog.csdn.net/qq_42972848/article/details/107893017

相关标签: Flutter