Files
SmartPlateCabinet/app/src/main/java/com/sw/platecabinet/ext/TextViewExt.kt
T
2025-07-18 17:16:00 +08:00

33 lines
907 B
Kotlin

package com.sw.platecabinet.ext
import android.os.Handler
import android.os.Looper
import android.view.View
import android.widget.TextView
/**
* 设置 TextView 的双击和单击事件监听器
* @param doubleClickInterval 双击间隔时间(毫秒),默认 300ms
* @param onDoubleClick 双击回调
* @param onSingleClick 单击回调
*/
fun TextView.setClickListeners(
doubleClickInterval: Long = 300,
onDoubleClick: (View) -> Unit = {},
onSingleClick: (View) -> Unit = {}
) {
var clickCount = 0
val handler = Handler(Looper.getMainLooper())
setOnClickListener { view ->
clickCount++
handler.postDelayed({
if (clickCount == 1) {
onSingleClick(view)
} else if (clickCount == 2) {
onDoubleClick(view)
}
clickCount = 0 // 重置计数
}, doubleClickInterval)
}
}