Flutter:从后台堆栈中只删除一页

Posted

技术标签:

【中文标题】Flutter:从后台堆栈中只删除一页【英文标题】:Flutter : delete just one page from back stack 【发布时间】:2021-01-14 02:47:27 【问题描述】:

所以,我知道这段代码将删除除新的 /login 之外的所有路由。:

Navigator.of(context)
    .pushNamedAndRemoveUntil('/login', (Route<dynamic> route) => false);

知道我想只从后台堆栈中删除一页..

示例:要创建一个新组,我会显示一个“创建新组”页面,其中包含一些信息(输入页面名称,输入页面类别...)。提交后,我们传递给新组的详细信息.. 但是当我单击返回按钮时,我不想返回“创建新组”页面。

【问题讨论】:

【参考方案1】:

pushReplacementNamed 将用新添加的导航器屏幕替换最新的

姓名:

Navigator.of(context).pushReplacementNamed('/login');

无名:

Navigator.pushReplacementNamed(context, '/login')

【讨论】:

【参考方案2】:

Navigator.of(context).pop()

Documentation

【讨论】:

是的,我现在就这样做。但是,当然,我必须在导航到新页面之前执行 Navigator.of(context).pop() 。这对用户来说真的不是很好,因为他会看到“毫秒”页面关闭和其他打开..我认为这不是最好的方式.. 你可以使用 pushAndReplace

以上是关于Flutter:从后台堆栈中只删除一页的主要内容,如果未能解决你的问题,请参考以下文章

Android从后台堆栈中删除活动

Android从后台堆栈中删除事务

Android:从后台堆栈中删除所有以前的活动

从后台堆栈恢复片段时的 savedInstanceState

Flutte VS RN

flutte学习-编译模式