flutter - 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);
}
}
解决方案
我有这个工作。
我的问题是在我的主应用程序中,我home
在MaterialApp
. 根据文档,如果home
指定了属性,则采用 route /
。所以我的主页是/
,我在我的路线中定义了它/home
,这被/
.
推荐阅读
- c# - 在 Visual Studio 2019 中创建独立的 exe 文件
- r - R 中的列表中嵌入的闭包是否存在错误?
- c# - 将使用形状的 Excel 工作表转换为图片格式 C#
- tkinter - 使 tkinter 消息框可选
- c - gcc:错误:;:没有这样的文件或目录 gcc:错误:大小:没有这样的文件或目录
- angularjs - 安装 ssr.Angular 后未创建页面
- javascript - chartjs 中的标签如何使数据不可见
- python - InfluxDB:写入请求成功(HTTP 204)但不显示
- javascript - Node.js PDFjs `SyntaxError: Unexpected token '.'`
- r - R使用tmaptools为sf对象中的每一行创建边界框