關於ListView觸控事件和點選Item事件衝突解決方法
前言
原創文章,歡迎轉載,請保留出處。
有任何錯誤、疑問或者建議,歡迎指出。
我的郵箱:[email protected]
當我們重寫ListView的OnTouchEvent方法時,通常都會switch一下MotionEvent的action,檢查符合一定條件是return true,比如重寫ListView新增下拉重新整理時出現下拉重新整理時容易誤點Item出發點擊事件或者出發長按事件。
例子
先看看下面的程式碼,我忽略了非關鍵部分:
@Override
public boolean onTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN :
// ...
break;
case MotionEvent.ACTION_MOVE :
if (...) {
// 下拉重新整理邏輯...
return true;//這裡攔截了觸控事件
}
break;
case MotionEvent.ACTION_UP :
// ...
break;
}
return super.onTouchEvent(ev);
}
分析
發現OnTouchEvent中條件出發下拉重新整理邏輯後直接return true;
而沒有執行到super.onTouchEvent(ev);
方法,在super.onTouchEvent(ev);
方法中有可以解決ListView觸控事件和點選Item事件衝突的程式碼,可以防止下拉重新整理時容易誤點Item出發點擊事件或者出發長按事件。
解決
在return ture;
前呼叫super.onTouchEvent(ev);
,程式碼如下:
@Override
public boolean onTouchEvent (MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN :
// ...
break;
case MotionEvent.ACTION_MOVE :
if (...) {
// 下拉重新整理邏輯...
super.onTouchEvent(ev);//呼叫父類方法,防止滑動時觸發點選事件
return true;//這裡攔截了觸控事件
}
break;
case MotionEvent.ACTION_UP :
// ...
break;
}
return super.onTouchEvent(ev);
}
相關推薦
關於ListView觸控事件和點選Item事件衝突解決方法
前言 原創文章,歡迎轉載,請保留出處。 有任何錯誤、疑問或者建議,歡迎指出。 我的郵箱:[email protected] 當我們重寫ListView的OnTouchEvent方法時,通常都會switch一下MotionEvent的action,
登陸按鈕的回車登陸事件和點選登陸事件
// enter鍵按下事件 $('body').keydown(function () { if(event.keyCode == '13'){ var pass
解決自定義ListView中滑動事件和點選的setOnItemClickListener事件衝突的問題
解決自定義ListView滑動事件和點選事件衝突的問題 一、問題描述 自定義的ListView加入下拉重新整理和上拉載入更多後會出現滑動時觸發了點選單個條目的setOnItemClickListene
ListView的長按事件和點選事件衝突的解決辦法
需求是這樣的:listView中點選item 跳轉到一個activity,長按item可以對這條item進行刪除操作,在刪除前會彈出dialog(確認刪除對話方塊)。 但是在開發過程中
vue中的長按事件和點選事件衝突
ps:我是個新手,最近一直在做移動端的專案,先說下需求,點選圖片預覽,長按刪除,之前在圖片上幫定了點選事件和長按事件,但是會有衝突,由於智商不夠,百度半天才解決的,最後直接把點選事件給去了,直接用定時器械的,記錄下,下次直接用就好了 1,觸屏事件 touchstart: //手指放到
【Swift 2.1】為 UIView 新增點選事件和點選效果
前言 UIView 不像 UIButton 加了點選事件就會有點選效果,體驗要差不少,這裡分別通過自定義和擴充套件來實現類似 UIButton 的效果。 宣告 歡迎轉載,但請保留文章原始出處:) 部落格園:http://www.cnblogs.com 農民伯伯: http://ove
Notification的滑動清除和點選刪除事件
專案裡面引用了友盟的推送統計,需要統計訊息的開啟數量和忽略數量 Notification的屬性介紹 audioStreamType 當聲音響起時,所用的音訊流的型別 content
Android小記:ListView中的按鈕點選響應事件
在Adapter中定義一個回撥介面,在Activity中實現該介面,從而實現對點選事件的響應。 有兩種方式都能比較好的實現:使用介面回撥和使用抽象類回撥 1.使用介面回撥: Adapter類: package com.ivan.adapter;
Android ListView的item點選無響應的解決方法
如果listitem裡面包括button或者checkbox等控制元件,預設情況下listitem會失去焦點,導致無法響應item的事件,最常用的解決辦法 是在listitem的佈局檔案中設定descendantFocusability屬性。 item的佈局檔
如何透過上層div點選下層的元素解決方法
一、問題描述筆者是在些一個登入介面時遇到這個問題的,需求是點選登入按鈕出現登入懸浮框,初始化時登入懸浮框是display:none的,但筆者發現登入框那一塊區域的input框無法響應點選時間,也無法獲得焦點。一般滑鼠放在input框上是會變成編輯的橫槓,input框也會獲得焦點。二、解決方案對上層元素使用:p
Selenium模擬操作中按鈕點選(click) 失效解決方法
在使用selenium模擬操作時經常遇到一些使用原始方法解決不了的問題。 click失效問題 曾經多次遇到元素click()失敗的情況,經典的例子就是某網站的登入框。 一般遇到click失敗時我的一般處理方法是改用send_keys(Keys.ENTER),直接用發回車鍵,簡單粗暴。
關於Ionic select在部分安卓下微信(QQ)點選無反應的解決方法
<div data-tap-disabled="true"> <select> <option value="one">One<
HashMap和HashTable區別及Hash衝突解決方法
一、HashMap和HashTable主要有以下5個方面的區別: 1.繼承的父類不同 Hashtable繼承自Dictionary類,而HashMap繼承自AbstractMap類。但二者都實現了Map介面。 2.對null物件的支援不同 HashMap是支援
android ListView點選item刪除事件的實現
2016 -10 -12 修改 之前只是為自己做個筆記,沒想到還挺多人需要這個,現在對程式碼進行了優化,並附上原始碼,希望能夠幫助到需要的同行 activity_main: <LinearLayout xmlns:android="http://schema
Activity中響應ListView內部按鈕的點選事件
最近交流群裡面有人問到一個問題:如何在Activity中響應ListView內部按鈕的點選事件,不要在Adapter中響應? 對於這個問題,我最初給他的解答是,在Adapter中定義一個回撥介面,在Activity中實現該介面,從而實現對點選事件的響應。 下班後思考了一下,覺得有兩種方式都能
ButterKnife (奶油刀) 找控制元件id和點選事件的註解 簡單使用
首先 在app裡的build 最上面--------------------- apply plugin: ‘com.jakewharton.butterknife’ ----------------在app裡的build 加入依賴---------------------------
div和內部的a標籤都有click事件,點選a不觸發div的click事件
<div> <a></a> </div> $("a").click(function(){ event.stopPropagation(); }) 詳情見: https://blog.csdn.net/u0
安卓實現任意控制元件view可拖拽,並監聽拖拽和點選事件,可自動拉回螢幕邊緣
因為專案中有需要實現控制元件可任意拖拽的需求,所以簡單寫了個自定義OnTouchListener,以作拋磚引玉,歡迎大家提議反饋。 完整實現類如下,程式碼中有詳細註釋: 使用者可以決定是否開啟自動拖拽邊緣功能,可以監聽控制元件的拖拽和點選事件 public cl
android ViewPager實現App主介面Tab選單頁面切換和點選事件
Tabhost實現頁面滑動切換比較麻煩,這裡介紹一下viewPage 控制元件。 實現了三屏滑動帶標題點選和tab頁面內按鈕的的點選事件實現; viewPage 的優點是可以滑動切換缺點是MainA
android Fragment實現APP主介面Tab頁面切換和點選事件
Fragment 頁面切換不能滑動 所以對於listview 可以新增的左右滑動事件 ,不會有衝突例如(QQ的好友列表的刪除) Fragment 和viewpager 的區別 Viewpager 的事件都需要寫在 MainActivity 使