代码之家  ›  专栏  ›  技术社区  ›  Gaurav

如何使用命名路由在Flutter中导航回特定屏幕?

  •  0
  • Gaurav  · 技术社区  · 10 月前

    我正在构建一个具有多个屏幕的Flutter应用程序,并使用命名路线进行导航。我想导航回路线堆栈中的特定屏幕,而不仅仅是上一个屏幕。

    例如,我有一个主屏幕(/home)、一个购物车屏幕(/cart)和一个订单屏幕(/orders)。从订单屏幕,我想直接导航回主屏幕,跳过购物车屏幕。我如何在Flutter中使用命名路由来实现这一点?

    3 回复  |  直到 10 月前
        1
  •  0
  •   Thorium09    10 月前

    要使用Flutter中的命名路由导航回特定屏幕,您可以使用 导航器的“popUntil” 方法。此方法允许您弹出路线堆栈,直到满足特定条件。在您的情况下,您可以使用它弹出所有路线,直到到达主屏幕。

    Navigator.popUntil(context, ModalRoute.withName('/home'));
    

    您还可以在此处的官方文档中阅读更多信息 https://api.flutter.dev/flutter/widgets/Navigator/popUntil.html

        2
  •  0
  •   Ivo    10 月前

    我相信你可以使用

    Navigator.popUntil(context, ModalRoute.withName('/home'));
    
        3
  •  0
  •   A-E    10 月前

    您只需提供所需屏幕的名称(在命名路线中)即可导航到该屏幕:

    • 只需导航到主屏幕(将其添加到路线堆栈中):

      Navigator.of(context).pushNamed("Home");
      
    • 导航到主屏幕,但(用它替换当前屏幕)

        Navigator.of(context).pushReplacementNamed("Home");
      
    • 导航到主页并删除堆栈中的所有路线

        Navigator.of(context).pushNamedAndRemoveUntil("Home", (route) => false);
      

    假设您已经预定义了路由名称或由其处理 onGenerateRoute 方法