Android事件處理

按鍵事件處理

按鍵捕獲先後順序:驅動層->系統層->library層->框架層->應用層。
應用層return false,事件會繼續向底層傳遞。
應用層return true,事件終止不再傳遞。
調用super方法,Activity會決定事件處理方式以及是否向底層傳輸。
return false和return true會導致按鍵onKeyLongPress事件無法處理,用return true攔截事件時需要添加event.startTracking()才能觸發onKeyLongPress事件,系統不會處理長按事件。
Home鍵一般交由系統處理,應用層一般不處理。

觸摸事件處理

onInterceptTouchEvent()進行觸摸事件攔截。
onTouch方法的return true可以攔截事件,return false會將事件進行逐級傳遞;最頂層return false之後,會將事件交由上級容器進行處理,當前不會再處理任何觸摸事件(Down、Move、Up),而return true可以繼續處理其他事件。
調用super方法後,則由Activity決定事件處理方式。
事件傳遞方式,從上往下傳遞,從下往上通知。
requestDisallowInterceptTouchEvent(true),在onTouchEvent中可以設置不攔截事件(ListView與ScrollView的滑動事件衝突時,可以如此設置)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章