StreamBuilder 用法示例

streambuilder 用法示例

Flutter 中的 StreamBuilder Widget 是什么?
StreamBuilder Widget是一个 响应 数据异步处理的StatefulWidget 。换句话说,我们可以说它能够保留“运行摘要”和/或记录并记录数据流中的“最新数据项”。

基本上它有两个参数。

A Stream,
A Builder,
Flutter 中的流是什么?
根据官方文档Stream将有如下定义

” Stream提供了一种接收事件序列的方法。每个事件要么是数据事件(也称为流的元素),要么是错误事件(这是某件事情失败的通知)。当流发出其所有事件时,单个“完成”事件将通知侦听器已到达末尾”

简而言之,我们可以说Stream就像一个管道,用户可以在其中一端输入一个值,而在另一端监听器,监听器将接收该值。Steam 还可以有多个侦听器,并且当您将其放入管道时,所有侦听器可以具有相同的值。

有两种流:

单一订阅:该流最多可以有一个侦听器。
广播:该流的侦听器数量可能是无限的。
Flutter 中的 Builder 是什么?
Builder 基本上用于 将数据 流转换为Widget。

StreamBuilder Widget的默认构造函数如下所示:

StreamBuilder({Key key, T initialData,Stream<T> stream,  AsyncWidgetBuilder<T> builder});

在上面的构造函数中,所有带有@required标记的字段都不能为空。现在让我们详细了解每个属性。

特性:
Key key:此属性 键 控制一个小部件如何替换树中的另一个小部件。
T initialData:该属性是将用于创建初始快照的数据。提供此值(大概是在创建流时以某种方式同步获取的)可确保第一帧将显示有用的数据。否则,无论流上是否有可用值,都将使用 null 值构建第一帧:由于流是异步的,因此在初始构建之前无法从流中获取任何事件。
AsyncWidgetBuilder builder:此属性指定此构建器当前使用的构建策略。它应该始终返回小部件,并且不应该有任何副作用,因为它将被多次调用。
Stream Stream:此构建器当前连接的异步计算,可能为 null。更改后,如果前一个流不为空,则使用afterDisconnected 更新当前摘要,如果新流不为空,则使用afterConnected更新当前摘要。

import 'dart:async';import 'package:flutter/material.dart';void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {Widget build(BuildContext context) {return MaterialApp(home: Scaffold(body: StreamBuilderWidget(),),);}}class StreamBuilderWidget extends StatefulWidget {_StreamBuilderWidgetState createState() => _StreamBuilderWidgetState();
}class _StreamBuilderWidgetState extends State<StreamBuilderWidget> {int _counter = 0;final StreamController<int> _events =StreamController<int>();initState() {super.initState();_events.add(0);}void _incrementCounter() {_counter++;_events.add(_counter);}Widget build(BuildContext context) {return  Scaffold(body:Center(child: new Column(mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[new Text('You have pushed the button this many times:',),StreamBuilder(stream: _events.stream,builder: (BuildContext context, snapshot) {return new Text(snapshot.data.toString());},),],),),floatingActionButton: new FloatingActionButton(onPressed: _incrementCounter,tooltip: 'Increment',child: new Icon(Icons.add,),));}
}

参考:
https://flutteragency.com/streambuilder-widget/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/103204.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在Synology群晖DSM中为不同用户设置权限

在使用Synology 群晖NAS时往往需要为不同的用户添加各自的账户权限&#xff0c;我们希望他们可以自由使用自己的主文件夹&#xff0c;但不要互相看到别人的主文件夹&#xff0c;更不要互相浏览别人主文件夹下的内容&#xff0c;应该怎么设置呢&#xff1f;DSM系统中有完善的文件…

阿里云10M公网收费价格表(一年和1个月报价)

阿里云服务器10M带宽收费价格表&#xff0c;阿里云服务器上海地域10M带宽一年优惠价格5355元&#xff0c;10M带宽一个月525元&#xff0c;地域不同带宽价格不同&#xff0c;阿里云服务器网以华东1&#xff08;上海&#xff09;地域为例&#xff0c;5M及5M以下带宽按照23元一个月…

minigpt-4 本地部署

minigpt-4 git主页。 笔者参考了深度学习笔记–本地部署Mini-GPT4&#xff0c;使用了http链接&#xff0c; huggingface下载llama和vicuna权重的download.txt分别如下&#xff1a; http://huggingface.co/decapoda-research/llama-7b-hf/resolve/main/.gitattributes http://…

SqlServer--get 和 post 请求 http接口

1. 开启 不开启报错 如下 4.1 SQL Server blocked access to procedure ‘sys.sp_OACreate’ sp_configure show advanced options, 1;GORECONFIGURE;GOsp_configure Ole Automation Procedures, 1;GORECONFIGURE;GO2. post Declare ServiceUrl nvarchar(MAX) Declare req_…

UI设计师岗位的基本职责八篇

UI设计师岗位的基本职责1 职责&#xff1a; 1. 负责公司互联网产品app、web、h5等的用户界面设计工作; 2. 负责运营活动相关的平面及视频设计支持; 3. 负责完成产品相关的界面、图标、动画等的图形界面设计&#xff0c;并参与制定、编写产品视觉设计规范文档; 4. 整理和分…

多服务器云探针源码(服务器云监控)/多服务器多节点_云监控程序python源码

源码简介&#xff1a; 多服务器云探针源码(服务器云监控),支持python多服务器多节点&#xff0c;云监控程序源码。它是一款很实用的云探针和服务器云监控程序源码。使用它可以帮助管理员能够快速监控和管理各种服务器和节点&#xff0c;实用性强。 源码链接&#xff1a; 网盘…

XXE漏洞复现实操

文章目录 一、漏洞原理二、验证payload三、没有回显时的验证四、漏洞特征五、读取文件六、Base64加密读取七、端口检测八、使用php检测端口九、dtd外部实体读取文件十、Xxe漏洞防御 一、漏洞原理 (1)XXE漏洞全称XML External Entity Injection&#xff0c;即xmI外部实体注入漏…

CTF/AWD竞赛标准参考书+实战指南:《AWD特训营》

文章目录 前言内容简介读者对象目录介绍 前言 随着网络安全问题日益凸显&#xff0c;国家对网络安全人才的需求持续增长&#xff0c;其中&#xff0c;网络安全竞赛在国家以及企业的人才培养和选拔中扮演着至关重要的角色。 在数字化时代&#xff0c;企业为了应对日益增长的攻…

【智能家居项目】裸机版本——网卡设备接入输入子系统 | 业务子系统 | 整体效果展示

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《智能家居项目》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 目录 &#x1f95e;网卡设备接入输入子系统&#x1f354;测试 &#x1f95e;业务子系统&#…

【业务功能篇 131】23种设计模式介绍

第一章 设计模式概述 1.1 代码质量好坏如何评价? 要想学习设计模式呢 我们就必须搞清楚设计模式到底在我们的编程过程中起到了怎样的作用,在编程世界中它处在一个什么样的位置,它到底是一种抽象的设计思想,还是一套具体的落地方案. 在学习设计模式之前呢 我们需要了解一下 代…

CRM系统:快速实现外勤出差人员远程访问企业提升工作效率!

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《速学数据结构》 《C语言进阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 快速实现外勤出差人员远程访问企业CRM系统前言1. 无需公网IP&#xff0c;高效低成本实现CRM系统远程访问1.1 下…

PostgreSQL的MVCC对比Oracle的MVCC有什么优劣势?

昨天被别人问到关于Oracle和PG的MVCC实现机制有什么不同&#xff0c;这块个人大体是了解一些的。Oracle在修改数据前会把数据的旧值先写到undo表空间中以实现MVCC&#xff0c;而PG中的更新操作会被转换为deleteinsert操作&#xff0c;然而这个delete并不是真正的把数据立刻删除…

软件测试/测试开发丨Python闭包与装饰器 学习笔记

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接&#xff1a;https://ceshiren.com/t/topic/27720 闭包与装饰器 1、函数引用 Python 中定义的函数&#xff0c;也可以像变量一样&#xff0c;将一个函数名&#xff0c;赋值给另一个变量名&#xff…

openlayers 实例教程分享

OpenLayers3示例 记录一个openlayers 实例教程网址 1、WebGIS简介 语雀 记录一个openlayers入门教程 地图坐标系转换 - Online Tools 记录一个国家2000坐标转换工具的方法 记录一次我使用openlayers 开发地图的实例&#xff0c;实现了打点&#xff0c;弹窗&#xff…

linux 系统时间、时区、date、timedatectl

一、名词 UTC 格林尼治标准时间&#xff0c;位于0时区&#xff0c;东八区需要8 RTC 硬件时间&#xff0c;也称作BIOS时间 CST 中央标准时间&#xff0c;也指各个时区自己的地方时间二、查看时间 #查看当前硬件时间 hwclock #查看当前系统时间 date date -u # 显示UTC时间 d…

Docker 的数据管理和Dockerfile镜像的创建

目录 Docker 的数据管理 管理 Docker 容器中数据的方式 端口映射 容器互联&#xff08;使用centos镜像&#xff09; Docker 镜像的创建 Dockerfile 操作常用的指令 编写 Dockerfile 时格式 Dockerfile 案例 Docker 的数据管理 管理 Docker 容器中数据的方式 管理 Doc…

【ES】--track_total_hits参数影响ES分页数据

目录 一、前言二、解决方法2.1、修改max_result_window参数2.2、修改track_total_hits 参数2.3、结论 一、前言 工作遇到一个ES深度分页查询时出现报错&#xff0c;报错内容如下 ElasticsearchException[Elasticsearch exception [typeillegal_argument_exception, reasonResu…

C# AnimeGAN 漫画风格迁移 动漫风格迁移 图像卡通化 图像动漫化

效果 项目 模型 animeganv3_H40_model.onnx animeganv3_H50_model.onnx animeganv3_H64_model.onnx AnimeGANv3_JP_face_v1.0.onnx AnimeGANv3_PortraitSketch_25.onnx Hayao-60.onnx Hayao_64.onnx Paprika_54.onnx Shinkai_53.onnx 下载 可执行文件exe下载 源码下载

JAVA IO 流分类整理

一、JAVA IO 流分为三种&#xff1a; 1、按照流向&#xff1a;输入流和输出流 2、按照操作单元&#xff1a;字节流和字符流 3、按照流的角色&#xff1a;节点流和处理流 二、JAVA IO 流的40多个类都派生自4个抽象类 1、字节输入流&#xff08;InputStream&#xff09; 、 2、字…

Pycharm 2023 设置远程调试

pycharm 版本 &#xff1a; 2023.2.1 整体流程参考&#xff1a;https://blog.csdn.net/xuanhaolaile/article/details/128293254 首先确定远程服务器上已经安装好 requirements.txt 中所需的依赖包。 1、SSH Configurations 添加远程服务器 2、Python Interpreter 注意&…