Android|Android kotlin 点击事件防重复
【Android|Android kotlin 点击事件防重复】利用kotlin的拓展函数和拓展属性轻而易举实现点击事件防重复:
新建一个kt文件,复制以下代码:
inline fun T.singleClick(time: Long = 800, crossinline block: (T) -> Unit) {
setOnClickListener {
val currentTimeMillis = System.currentTimeMillis()
if (currentTimeMillis - lastClickTime > time || this is Checkable) {
lastClickTime = currentTimeMillis
block(this)
}
}
}
//兼容点击事件设置为this的情况
fun T.singleClick(onClickListener: View.OnClickListener, time: Long = 800) {
setOnClickListener {
val currentTimeMillis = System.currentTimeMillis()
if (currentTimeMillis - lastClickTime > time || this is Checkable) {
lastClickTime = currentTimeMillis
onClickListener.onClick(this)
}
}
}var T.lastClickTime: Long
set(value) = setTag(1766613352, value)
get() = getTag(1766613352) as? Long ?: 0
使用方法:
tvTest.singleClick(1500) {
Log.e("singClick",System.currentTimeMillis().toString())
}
//括号内为间隔时间,可以忽略,默认800
//或者
tvTest.singleClick {
Log.e("singClick",System.currentTimeMillis().toString())
}
推荐阅读
- android第三方框架(五)ButterKnife
- Android中的AES加密-下
- 带有Hilt的Android上的依赖注入
- android|android studio中ndk的使用
- Android事件传递源码分析
- RxJava|RxJava 在Android项目中的使用(一)
- Android7.0|Android7.0 第三方应用无法访问私有库
- 深入理解|深入理解 Android 9.0 Crash 机制(二)
- android防止连续点击的简单实现(kotlin)
- Android|Android install 多个设备时指定设备