Android 一種優(yōu)雅的方式避免用戶快點(diǎn)擊(Databinding)? ?https://blog.csdn.net/xuehuayous/article/details/79460001
在使用Androidx的databing時(shí),在項(xiàng)目中添加以下ViewBindingAdapter.java 代碼,即可解決用戶快速點(diǎn)擊的問(wèn)題
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,"誤觸");
}
}
});
}
}