如何在不将旧根保存在堆栈中的情况下切换到新根?

Posted

技术标签:

【中文标题】如何在不将旧根保存在堆栈中的情况下切换到新根?【英文标题】:how to switch to a new root in flutter without saving the old one in the stack? 【发布时间】:2021-06-12 18:15:35 【问题描述】:

根据文档:

要切换到新路由,请使用 Navigator.push() 方法。推() 方法将 Route 添加到由 Navigator 管理的路由堆栈中。

但这会导致一个问题,好像我点击后退按钮会让我回到第一个屏幕根目录,那么我该如何防止呢?当我更改根目录时,我不希望将旧的根目录保存在根堆栈中

Navigator.push(
          context, MaterialPageRoute(builder: (context) => HomeScreen()));

【问题讨论】:

【参考方案1】:

使用

Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => HomeScreen()))

从文档中我们看到这种方法会

通过推送给定路线替换导航器的当前路线,然后在新路线完成动画处理后处理先前的路线。

【讨论】:

谢谢你,很高兴它有帮助:)

以上是关于如何在不将旧根保存在堆栈中的情况下切换到新根?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不将数据保存到数据库的情况下更新 Gridview 行

C#如何在不知道新数组长度的情况下将数组中的值保存到新数组中

如何在不将文件保存在本地存储上的情况下将对象传输到 Azure Blob 存储?

如何在不将其添加到目录的情况下在多个团队中安装机器人?

如何在不将 csv 保存到磁盘的情况下将 csv 格式的数据从内存发送到数据库?

如何在不将图像保存在本地的情况下将捕获的图像(Surface View)传递给另一个片段?