下文我們介紹兩種雙擊事件攔截的方式
創(chuàng)新互聯(lián)公司成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站建設(shè)、網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元萬秀做網(wǎng)站,已為上家服務(wù),為萬秀各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108
1.通過Android的事件分發(fā)機制進(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)容了,希望能給大家一個參考,也希望大家多多支持創(chuàng)新互聯(lián)。
當(dāng)前題目:Android雙擊事件攔截方法
當(dāng)前路徑:http://m.kartarina.com/article8/pipsip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、小程序開發(fā)、定制網(wǎng)站、域名注冊、網(wǎng)站排名、移動網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)