首页 > 其他分享 >第三百九十八回

第三百九十八回

时间:2024-03-12 22:02:26浏览次数:13  
标签:Stream 数据 九十八 第三 StreamProvider 使用 共享 方法

文章目录


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

在这里插入图片描述

1. 概念介绍

在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中的数据;

2. 使用方法

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

3. 示例代码

介绍完使用方法后,我们通过具体的代码来演示如何使用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"**相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

标签:Stream,数据,九十八,第三,StreamProvider,使用,共享,方法
From: https://blog.csdn.net/talk_8/article/details/136664315

相关文章

  • sed第三天
    sed第三天利用sed取出ifconfIgens33命令中本机的IPv4地址可以百度扩展了解即可也可以用别的命令实现只要有结果也可以ifconfigens33|sed-n's/.*inet\([0-9\.]\+\).*/\1/p'ipa|grep-A2'ens33:'|tail-n1|awk'{print$2}'[root@master~]#ip......
  • 实习第三天
    2024.3.05实习第三天1.继续代码编写的学习,并从C过渡到Python。(待解决)使用极客时间+啊哈C语言+Hellogithub2.熟悉云平台app应用程序运维端基于机构用户(DeviceSupplier)的使用操作(待解决)之后相应熟悉云平台web页面运维的相关操作。注:区分云平台系统的前端前台用户界面和后台管......
  • 系统开放相应接口给第三方平台
    SpringSecurity放行接口,匿名访问@EnableGlobalMethodSecurity(prePostEnabled=true,securedEnabled=true)publicclassSecurityConfigextendsWebSecurityConfigurerAdapter{/***自定义用户认证逻辑*/@AutowiredprivateUserDetailsServic......
  • Java登陆第三十四天——使用Vite创建工程化的Vue3项目
    VueVue是基于标准HTML、CSS和JavaScript构建的前端框架,可以更高效地开发前端页面。ViteVite是Vue团队开发的项目管理工具。Maven的主要功能引入依赖项目管理使用Maven可以工程化的管理后端代码。npm的主要功能:引入依赖vite的主要功能:项目管理使用npm+vit......
  • 10 个解放双手的 IDEA插件,少些冤枉代码(第三弹)
    大家好,我是小富~好久没发这种实用贴了,最近用到了一些能提升工作效率的IDEA插件,给小伙伴们分享一下。相信我,我分享的这些插件,都是实实在在能解决实际开发场景中痛处的。以往的两篇IDEA插件分享:10个解放双手的IDEA插件,少些冤枉代码10个解放双手的IDEA插件,这些代码真不用手写......
  • 第三章 右线性文法和有限自动机
    右线性文法和有限自动机目录右线性文法和有限自动机有限状态系统的概念有限自动机的概念确定有限自动机不确定有限自动机NFA和DFA的等价性有限状态系统的概念状态:状态是可以将事物区分开的一种标识离散状态系统:状态数有限,不能连续变化连续状态系统:状态可以连续变化,状态数......
  • 程序是怎样跑起来的第三章有感
    在阅读了《程序是如何跑起来的》第三章后,我对计算机程序的运行原理有了更深入的理解。这一章主要介绍了程序的内存管理和变量的使用。通过学习,我了解到内存是程序运行的重要资源,程序需要通过内存来存储和操作数据。同时,变量是程序中用于存储数据的容器,它们可以根据不同的数据类型......
  • Java登陆第三十四天——Node.js安装、npm配置、npm命令
    Nodejs是JS的运行环境,使JS可以运行在服务端,可以夸平台,可以运行在浏览器之外,成为一款全栈编程语言。Node.js安装Nodejs官网,进入......
  • 群星璀璨的Python江湖,Python第三方库介绍
    如果Python语言是一个江湖,那么python第三方库就是一个个身怀绝技的江湖侠客,这些侠客在这偌大的江湖尽情挥洒着江湖侠气。有人名扬天下,有人默默无闻,有人纵横捭阖,有人黯然谢幕,每天都在上演人生的悲欢离合。那么什么是python第三方库呢?什么是python第三方库python是一门非常流行......
  • .NET开源的两款第三方登录整合库
    前言我相信做开发的同学应该都对接过各种各样的第三方平台的登录授权,来获取用户信息(如:微信登录、支付宝登录、QQ登录、GitHub登录等等)。今天大姚分享两款.NET开源的第三方登录整合库。MrHuo.OAuthMrHuo.OAuth是.NET项目集成OAuth2登录最全面的、最方便的框架,集成了国内外大部分......