news 2026/6/15 20:04:22

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/6/15 11:23:43

uniapp+springboot鲜而廉水果百科网站微信小程序设计与实现

目录摘要项目技术支持论文大纲核心代码部分展示可定制开发之亮点部门介绍结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作摘要 鲜而廉水果百科微信小程序基于Uniapp与SpringBoot技术栈开发,旨在为用户提供便捷的水果信息查询…

作者头像 李华
网站建设 2026/6/15 12:13:21

EldenRingSaveCopier实战指南:告别存档丢失的烦恼

EldenRingSaveCopier实战指南:告别存档丢失的烦恼 【免费下载链接】EldenRingSaveCopier 项目地址: https://gitcode.com/gh_mirrors/el/EldenRingSaveCopier 还在为《艾尔登法环》存档在不同设备间无法同步而烦恼吗?💾 你的褪色者冒…

作者头像 李华
网站建设 2026/6/15 13:09:45

5分钟掌握Photon-GAMS:让你的Minecraft秒变电影级画质

5分钟掌握Photon-GAMS:让你的Minecraft秒变电影级画质 【免费下载链接】Photon-GAMS Personal fork of Photon shaders 项目地址: https://gitcode.com/gh_mirrors/ph/Photon-GAMS 还在为Minecraft的原始像素画面感到遗憾吗?想要让方块世界焕发新…

作者头像 李华
网站建设 2026/6/15 12:12:56

Cangaroo终极指南:掌握CAN总线分析的完整教程

Cangaroo终极指南:掌握CAN总线分析的完整教程 【免费下载链接】cangaroo 项目地址: https://gitcode.com/gh_mirrors/ca/cangaroo 在汽车电子和工业自动化领域,CAN总线分析是每个工程师必备的核心技能。Cangaroo作为一款开源的CAN总线分析工具&a…

作者头像 李华
网站建设 2026/6/15 18:02:52

暗黑3技能连点器:5大核心功能助你告别手忙脚乱

暗黑3技能连点器:5大核心功能助你告别手忙脚乱 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 还在为暗黑破坏神3中频繁的技能按键感到疲…

作者头像 李华