Flutter 换屏回调

Posted

技术标签:

【中文标题】Flutter 换屏回调【英文标题】:Flutter screen change callback 【发布时间】:2018-12-19 09:27:56 【问题描述】:

我想在屏幕更改时获得回调,这样我就可以停止在该特定屏幕上运行的重复请求。 “dispose”仅在使用 Navigator.pop 时调用,而不是在调用 Navigator.push 时调用。有没有办法检测到屏幕改变了,暂时没有显示?

【问题讨论】:

“换屏”是什么意思? 也许是***.com/questions/50815014/… ? 我的意思是像使用 Navigator.push 或 Navigator.pop 导航到新路线。对于 pop,它可以按我的意愿工作,调用 dispose 方法,但对于 push,它不会被调用。 initState() 在导航到新页面时应该被调用。仍然不确定您要完成什么。 我有一个屏幕,每 10 秒我会发送一个请求以检查行程状态。当您单击该屏幕上的某个按钮时,它可以打开地图页面、信息页面或票务页面。所以我想要做的是,当用户点击任何按钮打开一个新屏幕时,我希望能够取消计时器,这样它就不会继续发送请求。通常在android上的片段,我会取消“onPaused”上的计时器,并在“onResume”上重新启动它。我需要类似的东西。 【参考方案1】:

在您的 MaterialApp 或 WidgetsApp 上注册一个 RouteObserver,并使您的有状态小部件成为 RouteAware。示例代码:RouteObserver

【讨论】:

谢谢,这正是我需要的!

以上是关于Flutter 换屏回调的主要内容,如果未能解决你的问题,请参考以下文章

Dart/Flutter - 回调函数中的“yield”

如何在 Flutter 小部件中测试回调函数

Flutter - InAppWebView 中的 Jitsi Meet 回调

Dart/Flutter - 回调函数的收益

如何在Flutter / Dart中创建异步回调?

Flutter 连接错误回调