Flutter知识点: Notification

数据传输一般处理方式:自上而下的一层一层传递数据。

场景: WidgetB数据改变后,WidgetA也随之作出响应。

解决方案1: 参考Flutter知识点: InheritedWidget

解决方案2:Notification,子节点状态变更,发送通知上报。

1.自定义notification

class TestNotification extends Notification {
TestNotification({
  @required this.count,
});

final int count;
}

2.子节点发送通知

new RaisedButton(
       textColor: Colors.black,
       child: new Center(
         child: new Text('点击传递随机数给上层Widget'),
       ),
       onPressed: () {
         new TestNotification(count: new Random().nextInt(100)).dispatch(key.currentContext);
       })

3.父节点使用NotificationListener进行监听子节点发出的通知,并作出响应

new NotificationListener(
           onNotification: (TestNotification n) {
             scaffoldStateKey.currentState.showSnackBar(new SnackBar(content: new Text('随机数:${n.count}')));
             return true;
           },
           child: new TestAPage(
             key: key,
           ))

效果图

11.jpeg

已有项目集成到Flutter代码已经上传到我的GITHUB

知乎日报Flutter版代码已经上传到我的GITHUB

基础学习过程中的代码都放在GITHUB

每天学一点,学到Flutter发布正式版!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容