天天看点

java访问页面路由_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值,表示当前页面是否可以退出

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

希望与广大网友互动??

点此进行留言吧!