【问题标题】:Navigation in Flutter App - does not work as intendedFlutter App 中的导航 - 无法按预期工作
【发布时间】:2021-05-18 20:17:58
【问题描述】:

我尝试构建一个颤振应用程序并希望在页面中导航。 我构建了一个带有多个项目的菜单的抽屉,以打开新页面 - 效果很好。

      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 部分,但这也不起作用。

现在我通过使用 always Navigator.push 得到了我想要的,但我确信这是不对的,所以导航器堆栈变得越来越大。

我做错了什么?为什么 .pop 没有把我带到最后一页? 有什么想法吗?

提前谢谢 帕特里克

【问题讨论】:

    标签: flutter dart navigation


    【解决方案1】:

    只需删除 Page1 onTap 中带有 Navigator.of(context).pop(); 的行。

    【讨论】:

      【解决方案2】:

      您可以在任何需要从堆栈中删除当前页面并路由到新页面的情况下使用pushReplacement

      替换最紧密包围的导航器的当前路线 通过推送给定的路线然后处置给定的上下文 新路线完成动画后的上一条路线。

      here 是文档

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        • 2018-07-04
        相关资源
        最近更新 更多