您好,登錄后才能下訂單哦!
下文我們介紹兩種雙擊事件攔截的方式
1.通過Android的事件分發機制進行攔截(dispatchTouchEvent)
話不多說,直接上代碼:
/** 判斷是否是快速點擊 */ private static long lastClickTime; public static boolean isFastDoubleClick() { long time = System.currentTimeMillis(); long timeD = time - lastClickTime; if (0 < timeD && timeD < 1000) { return true; } lastClickTime = time; return false; } /** 判斷觸摸時間派發間隔 */ @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { if (isFastDoubleClick()) { return true; } } return super.dispatchTouchEvent(ev); }
用法就是直接在你需要攔截雙擊事件的類中加入這兩個函數,系統會自動調用dispatchTouchEvent進行事件攔截,屏蔽掉雙擊事件,可以通過調整上述的時間達到你想要的效果
缺點就是加入后的整個activity都會屏蔽掉雙擊事件,可能會影響其他組件的正常使用
2.通過一個工具類來使用雙擊函數
//判斷是否是快速點擊 private static long lastClickTime = 0L; //上一次點擊的時間 public static boolean isFastDoubleClick() { long time = System.currentTimeMillis(); long timeD = time - lastClickTime; if(timeD<1000){ //寫自己的雙擊邏輯 return true; } lastClickTime = time; return false; }
使用方法就是將這個函數放到一個工具類中,在你需要進行雙擊事件攔截時,直接調用這個函數進行判斷即可,有沒有很方便
以上這篇Android雙擊事件攔截方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。