Flutter 常用路由方法

2022-02-08  本文已影响0人  jianshufei

前提:页面打开顺序A->B->C,当前所在页面为C

1、popUntil

a.所有页面销毁,app黑屏,
dispose时,会从第一个页面开始dispose,例如a-b-c

 Navigator.popUntil(context, (route) => false);

b.页面直接报错

Navigator.popUntil(context, (route) => null);

c.pop直到当前页面是B页面时停止
dispose时,会从第一个页面开始dispose,例如页面打开顺序a-b-c-d,关闭时是c-d

Navigator.popUntil(context, ModalRoute.withName('/B'));
2、popAndPushNamed

先打开B,在关闭自己(C)

Navigator.popAndPushNamed(context, '/B');
3、pushReplacementNamed

先打开B,在关闭自己(C)

Navigator.pushReplacementNamed(context, '/B');
4、pushNamedAndRemoveUntil

a.先打开一个新的页面,再删除路由栈中所有的页面,此时新页面会是路由栈中第一个页面
(即使打开的是根路由,也会把路由栈中的删掉)

1、Navigator.pushNamedAndRemoveUntil(context, '/', (route) => false);
2、Navigator.pushNamedAndRemoveUntil(context, '/', (route) => route == null,);
3、Navigator.pushNamedAndRemoveUntil(context, '/two', (route) => false);

b.打开一个新页面C,干到其他页面,直到当前页是B

Navigator.pushNamedAndRemoveUntil(context, '/C', ModalRoute.withName('/B'));
Navigator.pushNamedAndRemoveUntil(context, '/B', ModalRoute.withName('/B'));
上一篇 下一篇

猜你喜欢

热点阅读