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