Android 一种优雅的方式避免用户快点击(Databinding) https://blog.csdn.net/xuehuayous/article/details/79460001
在使用Androidx的databing时,在项目中添加以下ViewBindingAdapter.java 代码,即可解决用户快速点击的问题
public class ViewBindingAdapter {
@BindingAdapter({"android:onClick","android:clickable"})
public static void setOnClick(View view, View.OnClickListener clickListener,
boolean clickable) {
setOnClick(view, clickListener);
view.setClickable(clickable);
}
@BindingAdapter({"android:onClick"})
public static void setOnClick(View view,final View.OnClickListener clickListener) {
final long[] mHits =new long[2];
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.arraycopy(mHits,1,mHits,0,mHits.length -1);
mHits[mHits.length -1] = SystemClock.uptimeMillis();
if (mHits[0] < (SystemClock.uptimeMillis() -500)) {
clickListener.onClick(v);
}else {
Log.i(Cons.TAG,"误触");
}
}
});
}
}
网友评论