33 lines
907 B
Kotlin
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)
|
|
}
|
|
} |