Flutter 路由

396 阅读1分钟

1.直接进入页面(每次都将新建一个新的页面)

Navigator.of(context).pushNamed('routeName')

2.把当前页面在栈中的位置替换为跳转的页面, 当新的页面进入后,之前的页面将执行dispose方法

    eg: page1进入到page2, 在page2中pushReplacementNamed打开page3 此时 在page3中按返回 退 出到page1
Navigator.of(context).pushReplacementNamed('routeName')

3.同上面2 区别 pushReplacementNamed 是路由名字 而pushReplacement 是页面名字

Navigator.pushReplacement( context, MaterialPageRoute(builder: (BuildContext context) => screen()))

4.pop 当前页面 跳转制定路由页面

popAndPushNamed——Navigator.popAndPushNamed(context, 'routeName')

5.跳转到路由页面 pop掉前面的所有页面

Navigator.of(context).pushNamedAndRemoveUntil('/screen', (Route<dynamic> route) => false)

6.跳转到新的路由 然后pop 其他所有页面

     eg: page1-page2-page3-page4 这时候在page4页面中Navigator.popUntil(context, ModalRoute.withName('/page2')) 会回退到page2 pop掉page3 page4

popUntil——Navigator.popUntil(context, ModalRoute.withName('/page2'))

7.pop 当前页面

Navigator.of(context).pop()