第二百五十七回

2024-01-11 00:28
文章标签 五十七 第二百

本文主要是介绍第二百五十七回,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 概念介绍
  • 使用方法
  • 示例代码

我们在上一章回中介绍了通道相关的内容,本章回中将介绍StreamProvider组件.闲话休提,让我们一起Talk Flutter吧。

概念介绍

在Flutter中Stream是经常使用的组件,对该组件的监听可void main() {
///让状态栏和程序的appBar融为一体构成沉浸式效果,android有效果,需要IOS是否有效果
///SystemChrome这个类及其方法只能在main方法中运行,其它地方无法使用
SystemUiOverlayStyle systemUiOverlayStyle = const SystemUiOverlayStyle(
///这两个属性可以控制状态栏为透明色,它可以和appBar的颜色一致,主要是去掉了阴影效果
statusBarColor: Colors.transparent,
statusBarBrightness: Brightness.light,
///修改状态栏中文字的颜色为黑色,没有效果
// statusBarIconBrightness: Brightness.dark,
);
SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);

runApp();
}以StremBuilder,对该组件中数据的共享就是需要使用StremProvider。StreamProvider是一个类,
它不是Flutter SDK中自带的类,而是由Provider包提供的类。本章回将介绍如何通过StreamProvider来共享Stream中的数据;

使用方法

  1. 创建或者获取Stream对象;
  2. 在根目录下的provider属性中添加StreamProvider;
  3. 在项目中通过Consumer获取StreamProvider中的数据
    使用上面的方法时需要提前导入Provider包,仔细看一下这个使用方法,是不是有种似曾相识的感觉?这种感觉是对的,因为使用StreamProvider共享数据的方法和
    使用Provider共享数据的方法相同,只是我们以前介绍的是ChangeNotifierProvider来共享数据。这两个类都是Provider包中的类,只是它们使用的场景不同而
    已。我们重点介绍一下创建StreamProvider时使用的构造方法,该方法中有两个必选参数,详细如下:
  • Create<Stream?> create:该参数主要用来创建Stream对象;
  • T initialData:该参数用设置Stream对象的初始值;
    在实际项目中,我们可以自己创建Stream对象,也可以直接使用其它程序创建Stream对象,比如文件读写,网络操作都会产生Stream对象。

示例代码

介绍完使用方法后,我们通过具体的代码来演示如何使用StreamProvider管理数据:

  ///使用StreamProvider共享stream中的数据StreamProvider(create:(_) => Stream.periodic(const Duration(seconds: 2),(event)=>(event+1)).take(5),initialData: 9),///监听StreamProvider中的数据,这个数据源在main文件中Consumer<int>(builder: (context,data,_){return Text("value: $data");}),///监听StreamProvider中的数据Consumer<int>(builder: (context,data,_){return Text("value: $data");}),

上面代码中通过Stream的periodic()方法创建了Stream,并将泛型指定为int,默认值为9.注意:创建的StreamProvider需要放在MultiProvider中,示例代
码中没有列出来。编译并且运行上面的程序,就可以在终端打印出Stream中的共享的数据。我在这里就不演示程序的运行结果了,建议大家自己动手去实践。
看官们,与"StremProvider"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

这篇关于第二百五十七回的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/592573

相关文章

Python从0到100(五十七):机器学习-主成分分析机

主成分分析是⼀种常⽤的降维技术,⽤于将⾼维数据集投影到低维空间中,同时保留数据集的主要特征。PCA通过寻找数据中最重要的⽅向(主成分),并将数据投影到这些⽅向上来实现降维。 1.基本原理 1、数据中心化:⾸先,对原始数据进⾏中⼼化处理,即将每个特征的均值减去每个数据点的对应特征值,以确保数据的均值为零。 2、协方差矩阵:然后,计算数据的协⽅差矩阵,该矩阵表示了不同特征之间的关联性。 3、特征值

思考(五十七):一处 string 字段竞态问题引发的 crash

string 字段多协程竞态 通常写代码比较注意一些数据结构、容器的多协程竞态,比如 slice 、 map 对于 string 字段的多协程竞态,非常容易忽视 这里举例说明,项目中遇到的问题 竞态代码 代码片段1 (协程1 中执行) func (s *Server) loginOnWindows(p *common.Proto, ch *Channel) (err

刺激、环境、响应-系统架构师(五十七)

1需求管理是 CMM可重复级中的6个关键过程域之一,其主要目标是()。 A对于软件需求,必须建立基线以进行控制,软件计划、产品和活动必须与软件需求保持一致 B客观的验证需求管理活动符合规定的标准、程序和要求 C策划软件需求管理的活动,识别和控制已获取的软件需求 D跟踪软件需求管理的过程、实际结果和执行情况 解析: A 2商业智能是企业对商业数据的搜集、管理和分析的系统过程,主

RK3568笔记五十七:基于UNetMultiLane的多车道线等识别部署

若该文为原创文章,转载请注明原文出处。 此篇记录在正点原子的ATK-DLRK3568上复现山水无移大佬的UNetMultiLane 多车道线、车道线类型识别。 数据是基于开源数据集 VIL100。其中数据标注了所在的六个车道的车道线和车道线的类型。 8条车道线(六个车道),对应的顺序是:7,5,3,1,2,4,6,8。其中1,2对应的自车所在的车道,从左往右标记。 车道线的类别(10个

第二百零九节 Java格式 - Java数字格式类

Java格式 - Java数字格式类 以下两个类可用于格式化和解析数字: java.text.NumberFormatjava.text.DecimalFormat NumberFormat 类可以格式化一个数字特定地区的预定义格式。 DecimalFormat 类可以格式化数字以特定区域设置的自定义格式。 NumberFormat类的 getXXXInstance()方法返回格式化

第二百零四节 Java正则表达式教程 - Java正则表达式量词

Java正则表达式教程 - Java正则表达式量词 我们可以指定正则表达式中的字符的次数可以匹配字符序列。 为了使用正则表达式表达一个数字或更多的模式,我们可以使用量词。 下表列出了量词及其含义。 量词含义*零次或更多次+一次或多次?一次或根本不{m}正好m次{m,}至少m次{m,n}至少m,但不超过n次 量词必须遵循字符或字符类。 例子 import java.util.reg

Python武器库开发-武器库篇之Redis未授权漏洞扫描器(五十七)

Python武器库开发-武器库篇之Redis未授权漏洞扫描器(五十七) Redis未授权访问漏洞简介以及危害 Redis是一个开源的内存数据库,具有高性能和可扩展性。然而,由于配置不当或者默认设置,Redis服务器可能会存在未授权访问的漏洞。 未授权访问漏洞是指攻击者可以通过网络访问Redis服务器而无需进行身份验证。这意味着攻击者可以执行各种恶意操作,如读取、修改、删除或注入数据,甚至可能

Python 全栈体系【四阶】(五十七)

第五章 深度学习 十三、自然语言处理(NLP) 2. 传统NLP处理技术 2.4 关键词提取 关键词提取是提取出代表文章重要内容的一组词,对文本聚类、分类、自动摘要起到重要作用。此外,关键词提取还能使人们便捷地浏览和获取信息。现实中大量文本不包含关键词,自动提取关检测技术具有重要意义和价值。关键词提取包括有监督学习、无监督学习方法两类。 有监督关键词提取。该方法主要通过分类方式进行,通过

五十七、JIT

JIT技术是JVM中最重要的核心模块之一。我的课程里本来没有计划这一篇,但因为不断有朋友问起,Java到底是怎么运行的?既然Hotspot是C++写的,那Java是不是可以说运行在C++之上呢?为了澄清这些概念,我才想起来了加了这样一篇文章,算做番外篇吧。 Just In Time Just in time编译,也叫做运行时编译,不同于 C / C++ 语言直接被翻译成机器指令,javac把j

Android 中 C++ Thread线程用法(五十七)

1、Android把线程C++封装Thread类,它是线程的基类  2、使用Thread时,创建一个类继承于Thread类,实现threadLoop()方法是纯虚函数,在子类中实现  3、启动线程,调用run()函数 class Thread : virtual public RefBase//RefBase封装sp、wp智能指针 { public: