【发布时间】:2019-07-25 05:46:48
【问题描述】:
我正在学习 Flutter,但我有一个关于导航的问题。我的应用程序有 3 个页面,每个页面都包含相同的抽屉,使用 navigator.push() 在它们之间导航。现在我可以一遍又一遍地推动“相同”页面,然后使用后退按钮 (navigator.pop) 一个又一个地重新打开它们。有没有办法只创建每个页面一次然后重新打开它,如果它已经被推送到堆栈?
【问题讨论】:
我正在学习 Flutter,但我有一个关于导航的问题。我的应用程序有 3 个页面,每个页面都包含相同的抽屉,使用 navigator.push() 在它们之间导航。现在我可以一遍又一遍地推动“相同”页面,然后使用后退按钮 (navigator.pop) 一个又一个地重新打开它们。有没有办法只创建每个页面一次然后重新打开它,如果它已经被推送到堆栈?
【问题讨论】:
我终于找到了一种方法,但没有导航器。我已将所有 Scaffolds 放在 PageWiew 中,禁用滑动操作并将 AutomaticKeepAliveClientMixin 添加到每个页面。在抽屉中,我用 PageController.jumpToPage 更改了 Navigator.push 代码。现在它可以按我的意愿工作,但我仍然想知道这是否是“正确”的解决方案?
【讨论】:
不确定您是否可以创建一次然后重新打开它(保存状态和所有内容),但我认为这种方法将帮助您实现您想要的。
Navigator class 文档中有许多可能有用的静态方法。
【讨论】: