프로그래밍/Android

터치 이벤트 처리순서

chance 2011. 9. 1. 16:55

 

터치 이벤트의 순서

 

터치 이벤트 발생시 처리되는 핸들러 메쏘드의 순서는 아래와 같다.

dispatchTouchEvent()

onTouch()

onLongClick()

dispatchTouchEvent()

onTouch()

on_click()

동일한 메쏘드는 down, up 으로 구분된다.

 

저 순서는 다시 activity - viewgroup - view 로 향한다.

onLongClick 와 on_click 은 확정된 처리이므로, 이벤트를 하위로 넘길 수 없지만

나머지 메쏘드들은 boolean 리턴 값으로 해당 이벤트가 처리되었는지를

알릴 수 있다.

 

ViewGroup의 경우 하위로 가는 이벤트를 가로챌 수 있는 핸들러도 존재한다.

onInterceptTouchEvent()

 

또한, 부모 ViewGroup이 이벤트를 가로채지 말도록 설정하는 메쏘드도 있다.

requestDisallowInterceptTouchEvent()

 

음.. 점점 복잡해지는데.. 이미 dispatch로 처리할 수 있는데 인터셉트를 할 필요가 있는지는 모르겠음

-_-;;