mainactivity如下:
package com.cn;
import android.os.bundle;
import android.view.motionevent;
import android.view.view;
import android.view.view.ontouchlistener;
/** * demo描述:
* * 在此基礎上繼續學習和認識android事件傳遞機制
* 認識事件傳遞的詳細過程
* * demo構成:
* 乙個普通的activity,自定義button.
* 在自定義button中覆寫dispatchtouchevent和ontouchevent
* 其返回值均為預設值,所以均為true.
* 在activity中為自定義button註冊touchlistener.並且覆寫
* 該activity的dispatchtouchevent和ontouchevent.
* 因為自定義button的ontouchevent預設返回為true.
* 表示事件已經消耗,不會繼續傳遞,所以activity中的
* ontouchevent方法不會呼叫
* *
* 即touch事件的處理順序為:
* 1 activity的dispatchtouchevent()方法
* 2 自定義button的dispatchtouchevent()方法
* 3 activity中自定義button的touchlistener執行
* 4 自定義button的ontouchevent()方法
* * 若把1中的現在的返回值取反,那麼2,3,4不會執行
* 同理,若把2中的現在的返回值取反,那麼後續的3,4不會執行
* 同理,若把3中的現在的返回值取反,那麼後續的4不會執行
* * 常量對應:
* down--->0
* up----->1
* move--->2
* */
public class mainactivity extends activity
private void init()
});}
@override
public boolean dispatchtouchevent(motionevent ev)
@override
public boolean ontouchevent(motionevent event)
}
eventbutton如下:
package com.cn;
import android.content.context;
import android.util.attributeset;
import android.view.motionevent;
import android.widget.button;
public class eventbutton extends button
@override
public boolean dispatchtouchevent(motionevent event)
@override
public boolean ontouchevent(motionevent event)
}
main.xml如下:
Android事件傳遞機制
android中的事件型別分為按鍵事件和螢幕觸控事件,touch事件是螢幕觸控事件的基礎事件,有必要對它進行深入的了解。乙個最簡單的螢幕觸控動作觸發了一系列touch事件 action down action move action move action move.action move acti...
Android事件傳遞機制
android開發過程中複雜混合控制項的難點之一的就是事件衝突。我們知道在處理事件衝突中,最重要的方法是 dispatchtouchevent onintercepttouchevent ontouchevent 通過作用這三個方法,我們可以達到事件的分發 攔截 消費的效果。在activity 無o...
Android事件傳遞機制
android中dispatchtouchevent,onintercepttouchevent,ontouchevent的理解 android中的事件型別分為按鍵事件和螢幕觸控事件,touch事件是螢幕觸控事件的基礎事件,有必要對它進行深入的了解。乙個最簡單的螢幕觸控動作觸發了一系列touch事件...