当前位置: 移动技术网 > IT编程>开发语言>Java > Flutter Navigator路由,返回,替换路由及返回指定页面

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

2020年08月10日  | 移动技术网IT编程  | 我要评论


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

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网