Flutter Navigator路由,返回,替换路由及返回指定页面
Flutter 路由,返回,替换路由及返回指定页面
【学习 路由页面跳转】 查看.
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
上一篇: 窗口缩放导致页面排版错乱的解决方法