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