美文网首页
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