安卓 kotlin 拓展函数给View 增加双击事件

1,265 阅读1分钟

利用kotlin的拓展函数,简单的给view增加双击事件:

工具笔记,方便快捷,只是写个简单的笔记,为啥要50个字?

/**
 * @author : leo
 * @date : 2021/8/18
 * @description : View双击拓展
 */
@SuppressLint("ClickableViewAccessibility")
inline fun <T : View> T.doubleClick(crossinline block: (T) -> Unit) {
    val gestureDetector = object : GestureDetector.SimpleOnGestureListener() {
        override fun onDoubleTap(e: MotionEvent?): Boolean {
            block(this@doubleClick)
            return true
        }

        override fun onSingleTapUp(e: MotionEvent?): Boolean {
            this@doubleClick.performClick()
            return true
        }
    }
    val gestureDetectorCompat = GestureDetectorCompat(context, gestureDetector)
    this.setOnTouchListener { _, event ->
        gestureDetectorCompat.onTouchEvent(event)
        return@setOnTouchListener true
    }
}