有没有一种方法可以将数据从一个小部件广播到其他小部件?与Android上的BroadcastReceiver或iOS上的NSNotificationCenter相似。
具体来说,我正在尝试检测导航器何时弹出或推送新视图。我将navigatorObservers添加到MaterialApp。当小部件返回到前景时,我希望能够通过广播didPush和didPop的更改以及当前前景中的实际路由来通知它
Navigator.push返回Future将在Navigator.pop被调用时完成的(并且可以选择将其用于将数据传递回称为的小部件push)。例如,假设您的登录按钮具有以下onPressed处理程序:
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如果用户使用“后退”按钮返回上一屏幕,则将得到提示。)
Navigator.pop(true)
true
isLoggedIn
null
这也是如此showDialog。
showDialog