hegaojian / JetpackMvvm

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

登录注册的按钮没有做防抖吗 #42

Closed fubd closed 3 years ago

fubd commented 3 years ago

使用databinding时,防抖应该怎么实现

fubd commented 3 years ago

@hegaojian

hegaojian commented 3 years ago

百度搜搜,代码一大堆哦 兄待

 @BindingAdapter("noRepeatClick")
    @JvmStatic
    fun setOnClick(view: View, clickListener: () -> Unit) {
        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.invoke()
            }
        }
    }
<TextView
         android:id="@+id/loginSub"
         android:layout_width="match_parent"
         android:layout_height="48dp"
         android:layout_marginTop="30dp"
         android:layout_marginBottom="12dp"
         android:background="@drawable/button_shap"
         android:gravity="center"
         android:text="登录"
         bind:noRepeatClick="@{() -> click.login() }"
         android:textColor="@color/white"
         android:textSize="16dp" />