Android防止双击一个按钮
什么是防止双击Android中的按钮的最佳方法?
你可以用Kotlin扩展函数和RxBinding非常花哨的方式来做到这一点
fun View.clickWithDebounce(debounceTime: Long = 600L, action: () -> Unit): Disposable = RxView.clicks(this) .debounce(debounceTime, TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribe { action() }
要么
fun View.clickWithDebounce(debounceTime: Long = 600L, action: () -> Unit) { this.setOnClickListener(object : View.OnClickListener { private var lastClickTime: Long = 0 override fun onClick(v: View) { if (SystemClock.elapsedRealtime() - lastClickTime < debounceTime) return else action() lastClickTime = SystemClock.elapsedRealtime() } }) }
然后只是:
View.clickWithDebounce{ Your code }
你可以使用这个方法。 通过使用后期延迟,您可以照顾双击事件。
void debounceEffectForClick(View view){
view.setClickable(false); view.postDelayed(new Runnable() { @Override public void run() { view.setClickable(true); } }, 500); }
更优选的解决方案是,
onclick(){ btn.setEnabled(false); btn.setClickable(false); //yourwork myWork(); } myWork(){ //your tasks. btn.setEnabled(true); btn.setClickable(true); }
作为一个链接可以轻松忽略,我不得不一再重复这一点
- 在Kotlin中获取函数名称
- 未能在新的Android Kotlin项目上运行Instrumented测试
- 与Kotlin一起使用Instant Run时发生IllegalAccessError
- Kotlin Firebase存储imageUri错误
- 在Android中设置本地化video查看uri
- 如何设置Kotlin的财产价值
- Android Studio自动完成吐司(Kotlin)的快捷方式
- kapt2和butterknife产生lint错误:预期的idtypes的资源
- 我现在正在用Kotlin开发一个Android应用程序,但是发生了一个错误:CompilationException:无法将方法调用“readText”内联到