View事件攔截的兩種方法
通常ViewGroup要對事件進行攔截可以通過重寫onInterceptTouchEvent()方法並返回true,就表示要對事件進行攔截,攔截之後事件就不會再傳遞到子View,自然的,子View的onTouchEvent()方法也不會被呼叫了。
另外如果你不想重寫ViewGroup的onInterceptTouchEvent()來攔截事件的話,可以讓父容器呼叫requestDisallowInterceptTouchEvent(false)來攔截事件,這個引數的false就表示子View需要父檢視攔截事件,true表示子View不要父View攔截事件。當這個方法設定以後,在ViewGroup的dispatchTouchEvent()方法就會判斷是否需執行onInterceptTouchEvent
然後,你很有可能在使用requestDisallowInterceptTouchEvent()的時候會很失望,不要問我為什麼,因為在dispatchTouchEvent()中在進行判斷是否去呼叫onInterceptTouchEvent()方法之前會呼叫resetState()方法重新把標誌位修改:
那麼該如何解決這個問題,
相關推薦
MUI自定義事件的兩種方法
mui.fire 監聽自定義事件 document.addEventListener('gohome',function(){ })觸發自定義事件 window.
在Activity中響應ListView內部按鈕的點選事件的兩種方法!!! 在Activity中響應ListView內部按鈕的點選事件的兩種方法
轉載:http://www.cnblogs.com/ivan-xu/p/4124967.html 最近交流群裡面有人問到一個問題:如何在Activity中響應ListView內部按鈕的點選事件,不要在Adapter中響應? 對於這個問題,我最初給他的解答是,在Adapter中定義
給TextBox新增失去焦點事件(兩種方法)
第一種: Txt_CustomerID.Attributes.Add("onfocusout", "CheckID('CustomerID');GetCompanyName();"); 給TextBox新增失去焦點事件,執行
android 捕獲返回(後退)按鈕事件的兩種方法
第一種方法: public void onBackPressed() { //code...... } 第二種方法: public boolean onKeyDown(int keyCode, KeyEvent event) {
angularjs 繫結enter事件的兩種方法
繫結dom元素enter事件有兩種方法,個人推薦第二種 方法一:由於沒有ngEnter指令,所以可以自己擴充套件一個 指令程式碼如下: 'use strict'; define(functi
View事件攔截的兩種方法
通常ViewGroup要對事件進行攔截可以通過重寫onInterceptTouchEvent()方法並返回true,就表示要對事件進行攔截,攔截之後事件就不會再傳遞到子View,自然的,子View的onTouchEvent()方法也不會被呼叫了。 另
js阻止事件冒泡的兩種方法
type print mil opp name sel code read lib 一、冒泡事件簡介 當我們點擊一個控件的時候,如果包括這個控件的父控件也有click事件,則會繼續執行。 方法一:event.stopPropagation( ); 例如: <div
view添加毛玻璃效果兩種方法
toolbar with mage lB cgrect width fault init pre 第一種方法: UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
postgraSql支持View可以修改的兩種方法。
all SQ del tor tle and ase tin amp http://www.postgresqltutorial.com/postgresql-views/ Creating PostgreSQL updatable views – giv
阻止事件冒泡的兩種方法
何為冒泡: 即事件開始是由最具體的元素接收,然後逐層向上級傳播到較為不具體的元素。 加入一個button和它的父級div同時定義了onclick事件,點選button時,在觸發了button的onclick事件之後,會發生事件冒泡,然後觸發div的onclic
Android在佈局中動態新增view的兩種方法
一、說明 新增檢視檔案的時候有兩種方式:1、通過在xml檔案定義layout;2、java程式碼編寫 二、前言說明 1.構造xml檔案 2.LayoutInflater 提到addview,首先要了解一下LayoutInflater類。這個類最主要的功
Button點選事件實現頁面跳轉的兩種方法
方法一: 常用方式,在java檔案中給Button設定點選監聽事件button.setOnClickListener(),新建Intent類,從MainActivity跳轉至ImageTest but
為未來元素繫結事件(JavaScript和jquery兩種方法對比)
小白 ~_~!! 日常打醬油 一般我們為已經存在的元素繫結事件,那麼直接獲取這個元素的id,直接繫結上去就可以了. 但當這個元素不存在,將會我們又會新增進去的時候,直接獲取目標元素id繫結事件就會對未來新新增的元素失效了!!. 也就是你後來新新增這個元素,是無法被觸發的
35.註冊監聽器的兩種方法(View.OnClickListener)
1. 使用匿名類註冊監聽器 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInst
為Button點選事件註冊監聽器的兩種方法
Button是Android程式中最常用到的控制元件之一,主要用來與程式和使用者的互動。可配置的屬性這裡不展開敘述,這裡簡單的在activity_main.xml中加入一個Button: <Bu
【Jquery】jQuery獲取URL參數的兩種方法
ont ras mil scrip line 兩種方法 lower quest request jQuery獲取URL參數的關鍵是獲取到URL,然後對URL進行過濾處理,取出參數。 location.href是取得URL。location.search是取得URL“?
線程的啟動的兩種方法,Runnable接口,run()的調用
ride 之前 線程終止 源碼解析 star 有意 tro thread類 override 實現並啟動線程有兩種方法1、寫一個類繼承自Thread類,重寫run方法。用start方法啟動線程2、寫一個類實現Runnable接口,實現run方法。用new Thread(Ru
spring 讀取properties的兩種方法
jdbc factor frame ram con framework html tex 讀取 一:直接使用context命名空間 如: <beans xmlns="http://www.springframework.org/schema/beans" xm
Parallels Desktop 12卸載的兩種方法!
對於mac系統虛擬機:Parallels Desktop 12怎麽卸載呢? 首先在Mac電腦中打開應用程序,然後找到Parallels Desktop 12軟件圖標,將它移除至廢紙簍中就可以了。如果我們已經在虛擬機中安裝了Windows,就需要先將這些Windows刪除,這樣才不會占用內存。
js數組去重的兩種方法
遍歷 方法 doc 思路 i++ 代碼 數組去重 -- length 數組去重這種問題經常會遇到,解決方法也有很多,這裏就總結兩種比較常用的方法。 方法一 第一種方法的思路:遍歷數組裏的元素,由第一個元素開始依次按照順序與其後面的元素相比較,如果不同則不