美文网首页Kotlin开发
Koltin协程防抖点击

Koltin协程防抖点击

作者: 渐渐懂了吧 | 来源:发表于2022-03-28 22:24 被阅读0次
传统方式(Java和Kotlin)
private var lastClickTime: Long = 0
view?.setOnClickListener {
    if (System.currentTimeMillis() - lastClickTime <= 500L) {
        lastClickTime = System.currentTimeMillis()
        return@setOnClickListener
    }

    XXXXX
}
缺点:每次都要写重复代码
RxBinding方式(Java和Kotlin)
依赖RxBinding:
implementation 'com.jakewharton.rxbinding2:rxbinding:2.2.0'

使用:

RxView
    .clicks(view!!)
    .throttleFirst(500L, TimeUnit.MILLISECONDS)
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe {
        XXXXX
    }
缺点:需要依赖三方库
Kotlin扩展函数+协程(Kotlin)
编写扩展函数:
fun View.setDebounceClickListener(listener: View.OnClickListener, time: Long = 500L) {
    var job: Job? = null
    this.setOnClickListener {
        job?.cancel()
        job = CoroutineScope(Dispatchers.Main).launch {
            delay(time)
            listener.onClick(it)
        }
    }
}
使用:
view?.setDebounceClickListener(
    {
        XXXXX
    }
)
缺点:只能Kotlin使用,不支持Java

相关文章

  • Koltin协程防抖点击

    传统方式(Java和Kotlin) 缺点:每次都要写重复代码 RxBinding方式(Java和Kotlin) 依...

  • Kotlin协程:MutableSharedFlow的实现原理

    一.MutableSharedFlow接口的实现 1.MutableSharedFlow方法 在Koltin协程:...

  • koltin协程-调度

    调度 调度者应该做什么(代码如何写) 启动任务会议(协程构建) 复杂任务如何分配(线程池分配) 如何更快的解决问题...

  • Kotlin 协程coroutine

    koltin 协程的定义 官方描述:协程通过将复杂性放入库来简化异步编程。程序的逻辑可以在协程中顺序地表达,而底...

  • Kotlin协程重要概念

    Kotlin协程重要概念 关于Koltin的协程【coroutine】,在正式撸码之前先对它有一个全面理论化的了解...

  • koltin协程图片加载库Coil

    koltin协程图片加载库Coil介绍[https://blog.csdn.net/u013762572/arti...

  • 防抖点击

    Hook反射https://blog.csdn.net/qq_32532321/article/details/8...

  • 项目常用代码

    节流 } 防抖 } 页面滚动(requestAnimationFrame) vue全局点击防抖

  • kotlin协程[1]:相关理论

    在之前对Kotlin的反射进行了详细的学习,接下来进入一个全新的篇章,就是关于Koltin的协程【coroutin...

  • js防抖和节流

    节流(按钮点击) 防抖(搜索)

网友评论

    本文标题:Koltin协程防抖点击

    本文链接:https://www.haomeiwen.com/subject/kqumjrtx.html