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

use*_*522 4 android broadcastreceiver nsnotificationcenter ios flutter

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

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

Col*_*son 10

Navigator.push返回一个Future将在Navigator.pop调用时完成的(这可以选择用于将数据传递回调用的小部件push).例如,假设您的登录按钮具有此onPressed处理程序:

onPressed: () async {
  bool isLoggedIn = await Navigator.pushNamed(context, '/login');
  if (isLoggedIn) {
    // do something
  }
}
Run Code Online (Sandbox Code Playgroud)

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

这也是showDialog有效的方法.