Flutter 颤振导航显示路线为/

Flutter 颤振导航显示路线为/,flutter,dart,navigator,flutter-navigation,Flutter,Dart,Navigator,Flutter Navigation,我有一张带有PopupMenuButton的卡片,我可以点击它来执行“复制”操作。我也可以从卡详细信息页面执行相同的操作。我的问题是回到主页,我必须兼顾这两种途径。因此,如果从详细信息页面执行操作,我需要弹出两次以返回主页 主页上的操作: 主页>添加卡片页面 navigator.pop()将我带回主页 详细信息页面中的操作: 主页>卡片详细信息页面>添加卡片页面 不得不在这里跳两次 我知道我必须至少执行一次pop,然后我使用popUntil检查路线的当前状态。出于某种原因,它总是弹出两次

我有一张带有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);
    }
  }

我有这个工作

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