将数据广播到Flutter中的多个小部件

时间:2017-06-07 07:40:23

标签: android ios broadcastreceiver nsnotificationcenter flutter

有没有办法将数据从一个小部件广播到其他小部件?类似于Android上的BroadcastReceiver或iOS上的NSNotificationCenter。

具体来说,我试图检测导航器何时弹出或推送新视图。我将navigatorObservers添加到MaterialApp。当一个小部件回到前台时,我希望能够通过广播didPush和didPop中的变化以及当前前景中的实际路径来通知它

1 个答案:

答案 0 :(得分:10)

Navigator.push会返回Future,该Navigator.pop将在调用push时完成(并且可以选择将其用于将数据传递回名为onPressed的窗口小部件)。例如,假设您的登录按钮具有此onPressed: () async { bool isLoggedIn = await Navigator.pushNamed(context, '/login'); if (isLoggedIn) { // do something } } 处理程序:

Navigator.pop(true)

当您的登录页面调用Future时,true将完成isLoggedIn的值,该值将分配给null变量。 (如果用户使用后退按钮返回上一个屏幕,您将获得showDialog。)

这就是{{1}}的工作原理。