flutter - Flutter App 中的导航 - 无法按预期工作
问题描述
我尝试构建一个颤振应用程序并希望在页面中导航。我用一个带有几个项目的菜单构建了一个抽屉来打开新页面——效果很好。
onTap: () {
Navigator.of(context).pop();
Navigator.push(
context,
new MaterialPageRoute(
builder: (BuildContext context) => new Page1(),
),
);
},
通过按下 Page1 菜单项 page1 可以正常打开。在 page1 内,我有一个带有“编辑”和“详细信息”的可滑动列表。我打开这个
onTap: () {
Navigator.of(context).pop();
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) => new DetailsPage(),
),
);
},
在详细信息页面中,我看到了所有我想看到的东西,但是当我按下 appBar 中的后退按钮时,我回到了主屏幕,抽屉关闭。
我试图放入 onPressed: () => Navigator.pop(context);
appBar 部分,但这也不起作用。
现在我通过使用总是得到我想要的,Navigator.push
但我确信这是不对的,所以导航器堆栈变得越来越大。
我做错了什么?为什么 .pop 没有把我带到最后一页?有任何想法吗?
提前谢谢帕特里克
解决方案
只需删除Navigator.of(context).pop();
Page1 onTap 中带有 的行。
推荐阅读
- c++ - 为什么这个单例从 DllMain 调用时偶尔会崩溃?
- php - 将 MySQLi 开放语句换成预准备语句
- spring-boot - 如何使用 tornadoFx 将多部分文件发送到 springboot 服务器?
- typescript - TypeScript Compiler API - 访问编译器阶段的输出
- .net - PSCredential 不包含名为“GetNetworkCredential”的方法
- php - 不能在扩展控制器上使用 laravel 响应
- r - 如果至少存在一个元素,如何提供结果?
- javascript - 如何重新声明具有相同名称但使用 Typescript 中的代码的方法
- unix - 如何从某年删除基于某种模式的文件
- c# - 这是等价的吗?(int) listofobj?.Count() 到 (listofobj == null)?0:listofobj.Count();