news 2026/2/28 21:00:01

Compose 封装 - 点击防抖

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Compose 封装 - 点击防抖

一、概念

简单场景(如登录按钮)使用标记,实现成本低。定义一个布尔状态 isLoading,业务代码开始时若为 true 则直接return,在成功后或finally中设为 false。
搜索框延迟执行。
需立即反馈一段时间内只执行一次。

二、基于时长

2.1 封装为Modifier

/** * 双击防抖 */ fun Modifier.clickableDebounce( duration: Long = 5000L, onClick: () -> Unit ) = composed { var lastClick by remember { mutableLongStateOf(0L) } this.then( Modifier.clickable( onClick = { val currentTime = System.currentTimeMillis() if (currentTime - lastClick >= duration) { onClick() lastClick = currentTime } }, interactionSource = remember { MutableInteractionSource() }, indication = null ) ) }

2.2 封装为函数

适用于自带点击回调的组件如Button。

/** * 双击防抖(适用于自带点击回调的组件如Button) */ inline fun onClickDebounce ( lastClickTime: Long, onLastClickTimeChange: (Long) -> Unit, duration: Long = 5000L, onClick: () -> Unit, ) { val currentTime = System.currentTimeMillis() if (currentTime - lastClickTime >= duration) { onLastClickTimeChange(currentTime) onClick() } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/27 0:21:43

很多人不会论文降AI率,这篇把论文降AI率讲清楚了

论文AI 率到底该怎么降?了解这些原理后,降ai 率真的超简单,本人亲测,三分钟就可以降到个位数,知网秒过!一、为什么手动降重总翻车?学术党必知的3大痛点“明明查重率达标了,导师却说论…

作者头像 李华
网站建设 2026/2/13 17:10:35

基于YOLOv5/8/10的火车检测与计数系统

文章目录 毕设帮扶:从0到1搭建基于YOLOv5/8/10的火车检测与计数系统——助你搞定深度学习毕设 一、课题价值:火车检测与计数毕设为啥值得做? 二、核心技术:YOLOv5/8/10在火车检测中的“硬实力” (一)YOLOv5:高效实用的“检测先锋” (二)YOLOv8:复杂场景的“检测能手”…

作者头像 李华
网站建设 2026/2/24 13:00:12

毕设助力!从0到1构建基于YOLOv11的病人跌倒检测系统

文章目录 毕设助力!从0到1构建基于YOLOv11的病人跌倒检测系统,让你的毕设守护医疗安全 一、项目背景:病人跌倒检测为啥非做不可? 二、核心技术:YOLOv11为啥适合跌倒检测? 三、项目目标:我们要做啥? 四、数据准备:让模型“看懂”跌倒动作 1. 数据集来源 2. 数据标注 3.…

作者头像 李华