news 2026/4/23 22:53:42

Compose 封装 - 倒计时消失容器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Compose 封装 - 倒计时消失容器

一、封装

  • 不要用封装 Dialog/AlertDialog 来实现弹窗。Dialog 作为基础组件就是个 Box 毫无意义,不必为了用它而多出很多不必要的代码 。AlertDialog 不基础但点击功能你往容器里传入的自定义界面也能实现。
  • 不要用收集 Flow 来实现倒数,collectAsState() 底层用了 remember 持久化,再次弹窗不会从头收集。
/** * 根布局用Box,该容器与屏幕内容平级,以实现类似对话框弹窗效果。 * @param maxCount 最大计数 * @param isShow 是否显示容器 * @param onDismiss 关闭容器显示 * @param content 容器界面内容 */ @Composable fun CountDownContainer( maxCount: Int, isShow: Boolean, onDismiss: () -> Unit, content: @Composable (Int) -> Unit ) { var count by remember { mutableIntStateOf(maxCount) } LaunchedEffect(isShow) { //it是从0开始正数,+1才能减到0(尽管多数1秒) repeat(maxCount + 1) { count = maxCount - it delay(1000) } } if (count == 0) onDismiss() //数到0就关闭容器 if (isShow) { content(count) } }

二、使用

@Composable private fun Demo( ) { var isShow by remember { mutableStateOf(false) } Button({ isShowDialog = true }) { Text("点击弹窗") } CountDownContainer( maxCount = 5, isShow = isShow, onDismiss = { isShow = false } ) { Box( modifier = Modifier.size(200.dp).background(Color.Red), contentAlignment = Alignment.Center ) { Text("$it") } } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 17:31:21

uniapp+springboot西安旅游景点攻略系统微信小程序_o

目录系统概述核心功能技术亮点应用价值项目技术支持论文大纲核心代码部分展示可定制开发之亮点部门介绍结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作系统概述 该系统基于UniApp和SpringBoot技术栈开发,旨在为西安游客提供…

作者头像 李华
网站建设 2026/4/18 16:23:30

Starward游戏启动器终极指南:一站式解决米哈游游戏管理难题

Starward游戏启动器终极指南:一站式解决米哈游游戏管理难题 【免费下载链接】Starward Game Launcher for miHoYo - 米家游戏启动器 项目地址: https://gitcode.com/gh_mirrors/st/Starward Starward是一款专为米哈游游戏设计的开源启动器,能完美…

作者头像 李华
网站建设 2026/4/16 19:27:19

MHY_Scanner智能扫码工具:高效登录的终极解决方案

MHY_Scanner智能扫码工具:高效登录的终极解决方案 【免费下载链接】MHY_Scanner 崩坏3,原神,星穹铁道的Windows平台的扫码和抢码登录器,支持从直播流抢码。 项目地址: https://gitcode.com/gh_mirrors/mh/MHY_Scanner 还在…

作者头像 李华
网站建设 2026/4/20 2:06:52

Keil5使用教程STM32:超详细版调试工具链设置说明

Keil5 STM32调试全链路实战指南:从零搭建稳定开发环境 在嵌入式开发的世界里,写代码只是第一步。真正让程序“活起来”的,是 能下载、能运行、能断点、能观察变量 的完整调试能力。 对于使用STM32系列微控制器的工程师来说,K…

作者头像 李华
网站建设 2026/4/23 15:40:14

基于Qwen3-VL的视觉代理技术详解:实现PC与移动GUI自动操作

基于Qwen3-VL的视觉代理技术详解:实现PC与移动GUI自动操作 在智能自动化日益渗透各行各业的今天,一个长期困扰工程师的问题逐渐浮出水面:如何让AI真正“看懂”并“操作”图形界面?传统RPA(机器人流程自动化&#xff09…

作者头像 李华
网站建设 2026/4/18 10:14:58

uniapp+springboot微信小程序实现考研资料共享平台_j

目录摘要项目技术支持论文大纲核心代码部分展示可定制开发之亮点部门介绍结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作摘要 基于Uniapp和SpringBoot的考研资料共享平台旨在为考研学生提供高效便捷的资源共享服务。Uniapp作为跨平台开…

作者头像 李华