在Compose中控制组件中数据的流速

文章目录

  • 一、场景描述
  • 二、代码示例

一、场景描述

在Compose中设计思想是分为状态和组件的,组件由状态控制。这个操作和传统的AndroidView不太一样。在Compose中对话框Dialog也是一个组件,其显示和隐藏由外部状态控制。这里有一个场景,假设显示和关闭的时间间隔过短的话,需要将时间延长至两秒后再隐藏。针对这种问题有两种写法,一种是外部控制显示隐藏时机,一种是内部控制。外部控制较为简单,这里不再记录。本文记录下内部控制方式。

二、代码示例

class HomePage{private val countFlow = MutableSharedFlow<String>()@Composablefun FlowWidget(text: String){val (state,change) = remember {mutableStateOf("323123")}LaunchedEffect(text){countFlow.emit(text)}LaunchedEffect(Unit) {countFlow.buffer().collect{delay(2000)change(it)Log.e("YM--->","接受值-->${it}--->time:${System.currentTimeMillis()}")}}Text(text = state)}
}

测试代码如下:

@RequiresApi(Build.VERSION_CODES.O)override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)val flowContent = mutableStateOf("1")lifecycleScope.launch(Dispatchers.IO) {delay(1000)flowContent.value = "2"delay(1000)flowContent.value = "3"}setContent {ComposeTestTheme {// A surface container using the 'background' color from the themeSurface(modifier = Modifier.fillMaxSize(),color = MaterialTheme.colors.background) {Box(modifier = Modifier.size(100.dp, 100.dp)) {FlowWidget(flowContent.value)}}}}}

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

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

相关文章

【C语言】(7)输入输出

输出 printf printf 是 C 语言中最常用的输出函数。它可以将格式化的字符串输出到控制台。 基本语法&#xff1a; int printf(const char *format, ...);format 是格式化字符串&#xff0c;用于指定输出的格式。... 表示可变数量的参数&#xff0c;根据格式化字符串输出相应…

ECS120fundamentals of compiling

Auto-gradedproblemsTheseproblemsarenotrandomized,sothereisnoneedtofirstsubmitafilenamedreq.Eachproblembelowappearsasaseparate“Assignment”inGradescope,beginningwith“HW1:”.1.1DFAsForeachproblem submittoGradescopea.dfafiledescribinga DFA deciding thegiven…

电路笔记 :MOS场效应晶体管+红外遥控+AMS1117 电源模块

三极管&#xff08;BJT&#xff0c;Bipolar Junction Transistor&#xff09;和 MOSFET&#xff08;Metal-Oxide-Semiconductor Field-Effect Transistor&#xff09;是两种不同类型的晶体管&#xff0c;它们在工作原理、性能特性和应用方面有一些重要的区别。 结构和工作原理…

大模型学习笔记一:大模型应开发基础(模型归类选型、安全因素选型、)

文章目录 一、大模型一些概念介绍二、市面上大模型对比三、大模型使用安全选型四、使用大模型的方式&#xff08;一问一答、Agent Function Calling、RAG、Fine-tuning五、大模型使用路线九、补充说明1&#xff09;注意力机制讲解 一、大模型一些概念介绍 1&#xff09;产品和大…

时序预测 | Python基于Multihead-Attention-TCN-LSTM的时间序列预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 时序预测 | Python基于Multihead-Attention-TCN-LSTM的时间序列预测 Multihead-Attention-TCN-LSTM&#xff08;多头注意力-TCN-LSTM&#xff09;是一种结合了多个注意力机制、时序卷积网络&#xff08;TCN&#xff0…

Flutter pubspec.yaml添加三方库、插件依赖时版本号前面的^作用

在 Flutter 的 pubspec.yaml文件中&#xff0c;依赖的版本号前面的 ^符号用于指定版本范围&#xff0c;而没有 ^ 符号则表示精确指定版本 带 ^ 符号 在依赖版本前使用 ^ 符号&#xff0c;代表接受这个依赖的任何向上兼容的版本&#xff08;主版本号相同&#xff0c;次版本号或…

Windows下EDK2快速搭建(详细)过程总结附软件包地址

目录 简介一、软件包下载安装VS2019下载NASM安下载LLVM/CLANG下载IASL下载安装Python安装OpenSSL下载EDK2 二、设置环境变量新增python系统变量新增NASM系统变量 三、编译3.1 在edk2目录直接输入cmd3.2 在cmd目录输入&#xff1a;edksetup.bat3.3 打开edk2编译窗口3.4 确认编译…

代码随想录算法训练营第四天-链表part2

day2和day3回家太晚&#xff0c;刷完题忘记写笔记了 - -&#xff01; 24.两两交换链表中的节点 给自己的笔记&#xff1a; 虚拟节点法是创建一个节点&#xff0c;它的next指针指向链表的头节点&#xff0c;这样便于&#xff1a; current指向虚拟节点&#xff0c;然后对链表进…

STL相关介绍及具体应用

STL的诞生 C的面向对象和泛型编程的思想目的就是提升代码复用性。为了建立数据结构和算法的一套标准&#xff0c;且避免重复无意义的代码工作&#xff0c;诞生了STL STL基本概念 1、STL&#xff08;Standard Template Library&#xff09;称为标准模板库 2、STL从广义上分为…

awk命令使用方法

简介 awk 是一种强大的文本处理工具&#xff0c;可以用于处理结构化的文本数据。它可以根据指定的模式和动作来筛选、处理和格式化文本。 下面是一些常见的 awk 命令使用方法。 详细介绍 基本语法&#xff1a; awk pattern { action } filename其中&#xff0c;pattern 是用…

微软 Power Apps Canvas App 画布应用将上传的附件转化为base64编码操作

微软 Power Apps Canvas App 画布应用将上传的附件结合Power Automate转化为base64编码操作 在使用canvas app的过程中&#xff0c;我们有时需要将上传的文件转换为base64存入数据库或者&#xff0c;调用外部接口传参&#xff0c;那么看下如何将文件转化为base64编码格式。 首先…

【数据分析】numpy基础第三天

前言 本文只会讲解最常用的加、减、乘、除&#xff0c;点乘&#xff08;或叫矩阵乘法&#xff09;、还有广播机制。 本文代码 链接提取码&#xff1a;1024 第1部分&#xff1a;基础数学计算 使用NumPy进行基本的数学运算是十分直观和简单的。下面我们将展示一些基本的加、…

笨蛋总结JVM

笨蛋总结JVM 由于Java语言将自己的内存控制权交给了虚拟机&#xff0c;所以需要了解虚拟机的运行机制 &#xff08;主要用于回顾JVM&#xff09; 笨蛋总结JVM 笨蛋总结JVM1.运行时数据区域线程私有区域程序计数器Java虚拟机栈本地方法栈 线程共享区域堆方法区 1.2程序计数器…

SQL编程作业

题目&#xff1a; 创建职工表以及职工工资表 职工表字段&#xff1a;工号&#xff0c;姓名&#xff0c;性别&#xff0c;年龄 工资表字段&#xff1a;编号自增&#xff0c;职工工号&#xff0c;基础工资10000 通过触发器实现&#xff1a; 对职工进行添加时 工资表中也要体现当…

键盘上Ins键的作用

前几天编写文档时&#xff0c;发现一个问题&#xff1a;插入内容时&#xff0c;输入的字符将会覆盖光标位置后的字符。原来是按到了键盘上的 Ins键&#xff0c;解决方法是&#xff1a;再按一次 Ins键&#xff08;Ins键如果独立作为一键时&#xff0c;否则使用 “Fn Ins”组合键…

PHP雪花算法

雪花算法&#xff08;Snowflake Algorithm&#xff09;是一种分布式唯一ID生成算法&#xff0c;旨在满足分布式系统中对唯一标识的需求。它由Twitter公司的工程师Snowman&#xff08;Snowflake的创造者&#xff09;设计&#xff0c;用于生成全局唯一的ID&#xff0c;以应对分布…

并查集的学习

并查集可以理解为数学上的集合 并查集一般以树这种数据结构来储存每一个元素&#xff0c;判断两个元素是否为同一个集合&#xff0c;通常判断两个元素所在的树的根结点是否相同&#xff0c;因为比较两个元素是否是同一个树要向上查找根结点&#xff0c;所以一般用双亲表示法&a…

Sphinx的原理详解和使用

一、Sphinx介绍 1.1 简介 Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎。意图为其他应用提供高速、低空间占用、高结果 相关度的全文搜索功能。Sphinx可以非常容易的与SQL数据库和脚本语言集成。当前系统内置MySQL和PostgreSQL 数据库数据源的支持&#xff0c;也…

限时回归!!!3D版《空洞骑士》!!!

空洞骑士是一款基于横板平台跳跃的传统风格2D动作冒险游戏。庞大的游戏世界交错相通&#xff0c;玩家控制小虫子去探索幽深黑暗的洞穴&#xff0c;成为了一代人茶余饭后的惦念&#xff0c;深受广大玩家们的喜爱。 这类平台跳跃游戏一般是游戏开发初学者以及独立游戏开发者们比…

【DRAM存储器十八】DDR3介绍

&#x1f449;个人主页&#xff1a;highman110 &#x1f449;作者简介&#xff1a;一名硬件工程师&#xff0c;持续学习&#xff0c;不断记录&#xff0c;保持思考&#xff0c;输出干货内容 参考资料&#xff1a;《镁光DDR3数据手册》 、《JESD79-3E》 最近忙于工作&#xff0…