Android雙擊事件攔截方法
下文我們介紹兩種雙擊事件攔截的方式
1.通過Android的事件分發(fā)機(jī)制進(jìn)行攔截(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; } /** 判斷觸摸時間派發(fā)間隔 */ @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { if (isFastDoubleClick()) { return true; } } return super.dispatchTouchEvent(ev); }
用法就是直接在你需要攔截雙擊事件的類中加入這兩個函數(shù),系統(tǒng)會自動調(diào)用dispatchTouchEvent進(jìn)行事件攔截,屏蔽掉雙擊事件,可以通過調(diào)整上述的時間達(dá)到你想要的效果
缺點就是加入后的整個activity都會屏蔽掉雙擊事件,可能會影響其他組件的正常使用
2.通過一個工具類來使用雙擊函數(shù)
//判斷是否是快速點擊 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; }
使用方法就是將這個函數(shù)放到一個工具類中,在你需要進(jìn)行雙擊事件攔截時,直接調(diào)用這個函數(shù)進(jìn)行判斷即可,有沒有很方便
以上這篇Android雙擊事件攔截方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android自定義引導(dǎo)玩轉(zhuǎn)ViewPager的方法詳解
這篇文章主要給大家介紹了關(guān)于Android自定義引導(dǎo)玩轉(zhuǎn)ViewPager的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06Android?掃碼槍輸入時屏蔽軟鍵盤和頂部狀態(tài)欄的解決方案
在Android設(shè)備上,使用掃碼槍時常遇到軟鍵盤和頂部狀態(tài)欄顯示問題,本文介紹了在Android 7.1.2版本上,如何通過設(shè)置inputType為none屏蔽軟鍵盤,以及通過hideStatusBar和NoActionBar方法隱藏頂部狀態(tài)欄,以優(yōu)化掃碼槍使用界面,這些方法有助于提升使用掃碼槍場景的用戶體驗2024-10-10Android Zxing 轉(zhuǎn)換豎屏掃描且提高識別率的方法
本篇文章主要介紹了Android Zxing 轉(zhuǎn)換豎屏掃描且提高識別率的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05android studio錯誤: 常量字符串過長的解決方式
這篇文章主要介紹了android studio錯誤: 常量字符串過長的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04