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

有没有办法将数据从一个小部件广播到其他小部件?类似于 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 中的依赖项

dart - 如何在 Widget 构建方法中调用异步属性

user-interface - Flutter slideTransition没有动画

flutter - 它们在 flutter 中是什么意思 'cross axis' ?

android-studio - 如何使 Flutter 应用的 Navigation Drawer

android - Flutter 中的 ListView 居中

dart - 构造函数可选参数

dart - 如何知道用户是否看到了 flutter 图像