Android kotlin使用扩展方法实现防按钮连点功能

1,749 阅读1分钟

最近看到了好几篇文章都在说这个功能。

有的用注解实现,有的用Java工具类来实现。

下面留言,有很多朋友说可以用kotlin的扩展方法实现。

直接上代码

(在任意kt文件中)

var lastClickTime = 0L
fun singleClick(during:Long = 500L,callBack: () -> Unit){
    var now = Date().time
    if(now - lastClickTime > during){
        callBack()
    }
    lastClickTime = now
}

调用

mButton.setOnClickListener {
    singleClick { 
        //do something
    }
}

以上

对了此方法还适用其他场合,例如过滤重复的网络请求,过滤重复的调用等等。