在我们项目中常常要判断是否快速点击,我们通常做法是通过时间来判断,但这种方法是有bug的,他无法确定你点的是不是同一个view,如过快点点击其他的view,你是不是也是通过时间了。。。这时候是不让点的,因此我们的事件也应该放在控件的本身来做判断。。。这个才是合理
private static WeakHashMap<View, Long> lastClickTimeMap = new WeakHashMap<View, Long>();
/**
* 判断是否为快读点击
*/
public static boolean isFastClick(View v) {
long now = SystemClock.elapsedRealtime();
Long lastClickTime = lastClickTimeMap.get(v);
if (lastClickTime == null || now - lastClickTime >= 500) {
lastClickTimeMap.put(v, now);
return false;
}
return true;
}
上面就是控件根据事件本身来做的判断。。。