有没有办法将数据从一个小部件广播到其他小部件?类似于 Android 上的 BroadcastReceiver 或 iOS 上的 NSNotificationCenter。
具体来说,我正在尝试检测导航器何时弹出或推送新 View 。我将 navigatorObservers 添加到 MaterialApp。当一个小部件回到前台时,我希望能够通过广播来自 didPush 和 didPop 的更改以及当前前台中的实际路由来通知它
最佳答案
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
的工作原理。
https://stackoverflow.com/questions/44406462/
相关文章:
dart - 我们如何在flutter中更改appbar背景颜色
dart - 在 TextInputType 更改后 Controller 重置的 Flutter
flutter - 无法在 flutter 中同步 build.gradle 中的依赖项
user-interface - Flutter slideTransition没有动画
flutter - 它们在 flutter 中是什么意思 'cross axis' ?
android-studio - 如何使 Flutter 应用的 Navigation Drawer