首页 > 解决方案 > Flutter - 导航到新屏幕,并清除所有以前的屏幕

问题描述

我使用Navigator.push了多达 6 个屏幕才能进入付款页面。付款后,我想推到“付款成功”页面,然后删除所有以前的屏幕,即使用后退按钮将返回到第一个屏幕。

注意:我已经尝试过pushReplacementNamed,但它不起作用。

标签: androiddartflutter

解决方案


我想到了。这就是Navigator.pushAndRemoveUntil功能。我必须将PaymentSuccessful小部件作为newRoute,并将"/Home"路由作为谓词传递的地方

  _navPaymentSuccessful(){
    Navigator.pushAndRemoveUntil(
      context, 
      MaterialPageRoute(
        builder: (context) => PaymentSuccessful()
      ), 
     ModalRoute.withName("/Home")
    );
  }

推荐阅读