hegaojian / JetpackMvvm

:chicken::basketball:一个Jetpack结合MVVM的快速开发框架,基于MVVM模式集成谷歌官方推荐的JetPack组件库:LiveData、ViewModel、Lifecycle、Navigation组件 使用Kotlin语言,添加大量拓展函数,简化代码 加入Retrofit网络请求,协程,帮你简化各种操作,让你快速开发项目
https://github.com/hegaojian/JetpackMvvm
Apache License 2.0
3.13k stars 610 forks source link

bind:noRepeatClick 一个xml文件添加多个控件的防抖,这个编译无法通过 #51

Closed leo-andr closed 3 years ago

leo-andr commented 3 years ago

![Uploading error.png…]()

hegaojian commented 3 years ago

databinding编译生成的代码有问题,暂时无法处理...

qwer2y commented 3 years ago

可以通过接口的方式替代高阶函数:

    @BindingAdapter(value = ["noRepeatClick"])
    @JvmStatic
    fun setOnClick(view: View, clickListener: CustomBindClickListener?) {
        val mHits = LongArray(2)
        view.setOnClickListener {
            System.arraycopy(mHits, 1, mHits, 0, mHits.size - 1)
            mHits[mHits.size - 1] = SystemClock.uptimeMillis()
            if (mHits[0] < SystemClock.uptimeMillis() - 500) {
                clickListener?.onClick()
            }
        }
    }

interface CustomBindClickListener{
        fun onClick()
    }

参考 https://stackoverflow.com/questions/53443784/android-data-binding-missing-return-statement-in-generated-code-when-calling-cu

hegaojian commented 3 years ago

赞 :+1: