android 防止重复点击

    技术2022-07-11  83

    1、kotlin实现

    通过 Kotlin 拓展, 在拓展类中新增两个方法

    fun View.OnClickListener.initSingleClickListener(vararg views: View) { views.map { it.setOnSingleClickListener(this) } }

    fun View.setOnSingleClickListener(listener: View.OnClickListener) { setOnClickListener { isClickable = false listener.onClick(this) postDelayed({ isClickable = true }, 1000) } }

    使用: initSingleClickListener(button1, button2)

    Activity 或者 Fragment 实现 View.OnClickListener 接口, 正常使用就可以了 override fun onClick(v: View){ // todo }

    2、java实现

    方案一: 项目中如果使用了 Rx,可以引入 JakeWharton 大神的 RxBiding 库,不仅实现了防止重复点击,而且防抖,节流什么的,要啥有啥。

    方案二:classpath ‘com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.4’ 类似的库

    Processed: 0.015, SQL: 9