Flutter入门:如何只关闭自身页面

Posted BennuCTech

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter入门:如何只关闭自身页面相关的知识,希望对你有一定的参考价值。

flutter的路由管理很方便,push和pop就可以了,但是pop只能关闭栈顶的页面,在某些需求中就显得力不从心了。

比如我们有一个倒计时弹窗(flutter中弹窗其实也是页面),倒计时结束后关闭。但是在弹出倒计时后,我们又弹出另外一个弹窗,这时候如果倒计时结束调用pop,只会将新的弹窗关闭,而倒计时弹窗则无法关闭了。

所以我们希望倒计时弹窗关闭自身,而不影响栈中其他页面。所以不能直接使用pop,而是用removeRoute,代码如下:

Navigator.of(context).removeRoute(ModalRoute.of(context));

这样就会关闭自身页面。

flutter的Navigator提供了更多样的路由操作,如下:

removeRouteBelow(Route<dynamic> anchorRoute)   //移除anchorRoute下面的那一个页面
popUntil(RoutePredicate predicate)   //会一直pop页面,直到predicate返回true
当然push和replace也有类似的操作,这里就不细说了。

关注公众号:BennuCTech,获取更多干货!

以上是关于Flutter入门:如何只关闭自身页面的主要内容,如果未能解决你的问题,请参考以下文章

我们如何使用 Flutter 中的底部导航栏触发有状态小部件以通过导航重建自身?

Flutter Webview - 如何在页面上添加更多链接或元素?

Flutter:如何在加载页面之前从 Api 获取数据 [关闭]

Flutter 制作一个具有酷炫液体滑动效果的酷炫入门页面

Flutter入门篇- 如何实现登录动画效果

Flutter/Dart:get_cli 为页面添加更多视图