Flutter Navigation将路线显示为/

时间:2019-10-16 12:55:27

标签: flutter dart navigator flutter-navigation

我有一张带有PopupMenuButton的卡,可以点击以执行“复制”操作。我还可以从“卡详细信息”页面执行相同的操作。我要解决的问题是回到必须同时满足这两种路径的主页。因此,如果从详细信息页面执行该操作,则需要弹出两次以返回首页。

  

主页上的操作:

     

主页>添加卡页面

     
      
  • navigator.pop()带我回到主页
  •   
     

详细信息页面上的操作:

     

主页>卡的详细信息页面>添加卡的页面

     
      
  • 必须在这里弹出两次。
  •   

我知道我必须至少进行一次pop,然后使用popUntil检查路线的当前状态。由于某种原因,它总是弹出两次。

调试后,其当前路由显示为/

  void _changeRoute(String newRouteName) {
    bool isNewRoute = false;

    // Pop once
    Navigator.pop(context); // after this I should be on home page for the first path

    Navigator.popUntil(context, (route) {
      print('Current route is ${route.settings.name}');

      if (route.settings.name == newRouteName) { // but this is showing current route as /
        isNewRoute = true;
      }
      return true;
    });

    print('is home page: $isNewRoute');

    if (!isNewRoute) {
      Navigator.pop(context);
    }
  }

1 个答案:

答案 0 :(得分:1)

我有这个工作。

我的问题是在我的主应用程序中,我在home上指定了MaterialApp属性。根据文档,如果指定了home属性,它将采用路由/。所以我的主页是/,在我的路线中将其定义为/home,而该页面已被/覆盖。