防止按钮多次点击,可以增加一个点击时,判断间隔时间是否达到一定时间,否则点击事件不做处理。

open class OnThrottledClickListener : View.OnClickListener {

    companion object {
        const val MIN_CLICK_DELAY_TIME = 800
    }

    private var lastClickTime = 0L

    override fun onClick(v: View?) {
        if (Math.abs(System.currentTimeMillis() - lastClickTime) > MIN_CLICK_DELAY_TIME) {
            lastClickTime = System.currentTimeMillis()
            onThrottledClick(v)
        }
    }

    open fun onThrottledClick(v: View?) {}
}

点击事件使用:

tvTextView.setOnclickListener(
  object : OnThrottledClickListener {
     override fun onThrottledClick(v: View? ){
        // 具体的点击操作
     }
  }
)
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐