防止View二次点击
fun View.click(delay:Long = 5000,method:(View) -> Unit){
setOnClickListener {
if (canClick(delay)){
method.invoke(this)
}
}
}
var View.lastClickMillis:Long
get() = getTag(R.id.triggerLastTimeKey) as? Long ?:0L
set(value) {
setTag(R.id.triggerLastTimeKey,value)
}
fun View.canClick(delay:Long = 500): Boolean {
var canClick = false
val currentMills = System.currentTimeMillis()
if (currentMills - lastClickMillis >= delay){
canClick = true
lastClickMillis = currentMills
}
return canClick
}
调用
helloTv?.click {
LogUtils.d("hello textview is click....")
}