news 2026/3/8 8:48:27

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/3/4 8:24:24

HTML5 MathML:深入解析数学标记语言在HTML5中的应用

HTML5 MathML:深入解析数学标记语言在HTML5中的应用 引言 随着互联网技术的不断发展,网页内容日益丰富多样。数学作为自然科学的重要组成部分,其表达和展示在网页上也变得尤为重要。HTML5 MathML应运而生,它为网页开发者提供了一种强大的数学表达式标记语言。本文将深入解…

作者头像 李华
网站建设 2026/3/4 12:48:26

论文降AI率一直不过?论文降AI率真正有效的方法在这里

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

作者头像 李华