第三百九十八回

news2024/11/27 10:33:20

文章目录

  • 1. 概念介绍
  • 2. 使用方法
  • 3. 示例代码

我们在上一章回中介绍了通道相关的内容,本章回中将介绍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"**相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

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

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

相关文章

【C++】STL(五) Stack Queue容器

5、 stack容器 5.1 简介 ① stack是一种先进后出的容器&#xff0c;它只有一个出口。 ② 栈中只有顶端的元素才可以被外界使用&#xff0c;因此栈不允许有遍历行为。 ③ 栈中进入数据称为&#xff1a;入栈 push ④ 栈中弹出数据称为&#xff1a;出栈 pop 5.2 常用接口 …

ansible-playbook的角色(role)

1前言 角色目录如下&#xff08;分别为httpd角色和nginx角色&#xff09; handlers/ &#xff1a;至少应该包含一个名为 main.yml 的文件&#xff1b; 其它的文件需要在此文件中通过include 进行包含 vars/ &#xff1a;定义变量&#xff0c;至少应该包含一个名为 main.yml 的…

如何使用US Domain Center和WordPress搭建非营利组织网站的详细指南

在今天的数字化时代&#xff0c;拥有一个专业、易于管理和更新的网站对于非营利组织&#xff08;例如慈善机构、NGO等&#xff09;至关重要。WordPress是一个功能强大且易于使用的网站构建平台&#xff0c;而美国域名中心 US Domain Center&#xff1a;US Domain Center 则是一…

Ansys Zemax | 如何获取公差报告中的任何优化操作数值

附件下载 联系工作人员获取附件 此文为上一篇文章“如何执行非序列公差分析”’的文末提到的详细介绍。 本文介绍如何使用 OpticStudio 的公差脚本功能在公差报告中包含任何优化操作数值&#xff0c;以及如何编写简单的公差脚本。 简介 在对系统进行公差处理时&#xff0c;…

C语言数据结构之堆排序

青衿之志 履践致远 堆排序(Heapsort) 是指利用 堆 这种数据结构所设计的一种排序算法&#xff0c;它是 选择排序 的一种。它是通过堆来进行选择数据。需要注意的是排升序要建大堆&#xff0c;排降序建小堆。 &#x1f3a5;二叉堆 &#x1f3a5;二叉树 &#x1f525;期待小伙伴们…

GIS瓦片3-WMTS瓦片

介绍 WMTS( Web Map Tile Service)切片地图Web服务&#xff08;OpenGIS Web Map Tile Service&#xff09;当前最新版本是1.0.0。WMTS标准定义了一些操作&#xff0c;这些操作允许用户访问切片地图。WMTS可能是OGC首个支持RESTful访问的服务标准。 WMTS提供了一种采用预定义图…

​LeetCode解法汇总1261. 在受污染的二叉树中查找元素

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给出一个满足下述规则的二叉树&#xff1…

【脚本玩漆黑】全自动赚金珠

文章目录 脚本思路 项目结构&#xff1a; 由橙华市全自动战斗改写的。大部分代码都不用修改。 金珠脚本money.py 土狼犬图片&#xff0c;区域选择土狼犬。 战斗废话的像素值&#xff0c;选择右下角一片深绿色。 战斗画面的像素值&#xff0c;和之前一样&#xff0c;取背景中的…

Redis + Caffeine = 王炸!!

在高性能的服务架构设计中,缓存是一个不可或缺的环节。在实际的项目中,我们通常会将一些热点数据存储到Redis或MemCache这类缓存中间件中,只有当缓存的访问没有命中时再查询数据库。在提升访问速度的同时,也能降低数据库的压力。 随着不断的发展,这一架构也产生了改进,在…

【Leetcode每日一题】 位运算 - 面试题 01.01. 判定字符是否唯一(难度⭐)(33)

1.题目解析 题目链接&#xff1a;面试题 01.01. 判定字符是否唯一 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 核心在于判断题目所给字符串是否存在相同字母&#xff0c;存在返回false即可&#xff0c;不存在返回true即可。 …

手把手教你搭建python+selenium自动化环境

快速简单搭建环境。如果有问题&#xff0c;欢迎进群讨论留言。 第一步&#xff1a;安装python解释器。官网地址&#xff1a;https://www.python.org/ 自动化测试最好下载3.7的。 下载完成后打开这个文件&#xff0c;然后傻瓜式安装。 安装好后&#xff0c;winr打开命令行窗口…

爬虫入门到精通_框架篇14(PySpider架构概述及用法详解)

官方文档 Sample Code&#xff1a; from pyspider.libs.base_handler import *class Handler(BaseHandler):crawl_config {}# minutes24 * 60&#xff1a;每隔一天重新爬取every(minutes24 * 60)def on_start(self):self.crawl(http://scrapy.org/, callbackself.index_page)…

【FFmpeg】ffmpeg 命令行参数 ⑤ ( 使用 ffmpeg 命令提取 音视频 数据 | 保留封装格式 | 保留编码格式 | 重新编码 )

文章目录 一、使用 ffmpeg 命令提取 音视频 数据1、提取音频数据 - 保留封装格式2、提取视频数据 - 保留封装格式3、提取视频数据 - 保留编码格式4、提取视频数据 - 重新编码5、提取音频数据 - 保留编码格式6、提取音频数据 - 重新编码 一、使用 ffmpeg 命令提取 音视频 数据 1…

【Attribute】Inspector视图枚举字段范围限定特性

简介 为了提升枚举的复用性&#xff0c;有时候我们可以通过限定枚举字段的范围来避免定义新的枚举类型&#xff0c;例如有一个代表方向的枚举&#xff08;包括None&#xff0c;Left&#xff0c;Up&#xff0c;Right&#xff0c;Down&#xff09;&#xff0c;全局方向&#xff0…

如何在RTMP推送端和RTMP播放端支持Enhanced RTMP H.265(HEVC)

技术背景 时隔多年&#xff0c;在Enhancing RTMP, FLV With Additional Video Codecs And HDR Support&#xff08;2023年7月31号正式发布&#xff09;官方规范出来之前&#xff0c;如果RTMP要支持H.265&#xff0c;大家约定俗成的做法是扩展flv协议&#xff0c;CDN厂商携手给…

掌握未来数据管理:MongoDB学习网站全攻略!

介绍&#xff1a;MongoDB是一个开源的文档型数据库系统&#xff0c;以其灵活性和可扩展性而闻名。以下是对MongoDB的详细介绍&#xff1a; 基本概念&#xff1a;MongoDB与传统的关系型数据库不同&#xff0c;它使用BSON&#xff08;类似JSON&#xff09;格式存储数据&#xff0…

案例分析篇05:数据库设计相关28个考点(9~16)(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

LeetCode[题解] 1261. 在受污染的二叉树中查找元素

首先我们看原题 给出一个满足下述规则的二叉树&#xff1a; root.val 0如果 treeNode.val x 且 treeNode.left ! null&#xff0c;那么 treeNode.left.val 2 * x 1如果 treeNode.val x 且 treeNode.right ! null&#xff0c;那么 treeNode.right.val 2 * x 2 现在这个…

细粒度IP定位参文2(Corr-SLG):A street-level IP geolocation method (2021年)

[2]S. Ding, F. Zhao, and X. Luo, “A street-level IP geolocation method based on delay-distance correlation and multilayered common routers,” Secur. Commun. Netw., vol. 2021, no. 1, pp. 1–10, 2021. 智能设备的地理位置可以帮助提供多媒体内容提供商和5G网络中…

linux设置systemctl启动

linux设置nginx systemctl启动 生成nginx.pid文件 #验证nginx的配置&#xff0c;并生成nginx.pid文件 /usr/local/nginx/sbin/nginx -t #pid文件目录在 /usr/local/nginx/run/nginx.pid 设置systemctl启动nginx #添加之前需要先关闭启动状态的nginx&#xff0c;让nginx是未…