美文网首页
Flutter页面关闭路由控制

Flutter页面关闭路由控制

作者: 旺仔_100 | 来源:发表于2021-11-17 19:34 被阅读0次
需求一、从A-B-C-D,然后需要回到B页面。

当然我们可以通过以下代码实现。

 Navigator.of(context)..pop()..pop();

但是,如果我们自己都不知道中间到底有多少个页面。有时候这样实现不了。
我们可以使用popUntil来实现

Navigator.popUntil(context, ModalRoute.withName(RouteName.dataCenterPageNew)) ;

你会发现会黑屏。
解决方式是添加 settings: RouteSettings(name: RouteName.dataCenterPageNew),

  case RouteName.dataCenterPageNew:
        return CupertinoPageRoute(
            settings: RouteSettings(name: RouteName.dataCenterPageNew),
            builder: (BuildContext context) {
          return ReconsitutionDataCenterPage();
        });

完美解决。

需求二、回到首页,也就是除了首页其他的页面都出栈。

可以使用pushNamedAndRemoveUntil

 Navigator.pushNamedAndRemoveUntil(
            context, RouteName.tab, (route) => false);
需求三、我们从A-B-C-D,然后我们跳转到E的时候想把B以上的页面都关闭掉。
 Navigator.of(context).pushNamedAndRemoveUntil("/E",ModalRoute.withName("/B"));
需求四、我们从A-B-C,然后我们想用D替换掉C
Navigator.pushReplacementNamed(context, "/D");

相关文章

网友评论

      本文标题:Flutter页面关闭路由控制

      本文链接:https://www.haomeiwen.com/subject/wlqrtrtx.html