Activity 를 하나 상속받아서 view 를 하나 만들었다고 하자. 이 때 그 view 위에서 touch 를 하게 되면 아래와 같은 경로로 event 가 전달된다.
말로 설명을 하자면, activity의 dispatchTouchEvent() 가 호출되면서 window 의 superDispatchTouchEvent(ev) 를 호출한다. 이 superDispatchTouchEvent() 가 최상위에 있는 Dispatch 해주는 녀석이라고 봐도 무방할 듯 하다. 아무튼 이 녀석으로부터 시작해서 child 의 dispatchTouchEvent(event) 를 호출하고, 그 child 의 child 의 dispatchTouchEvent(event)를 호출하고, 또 그 child의 child 의 child 의 dispatchTouchEvent(event)를 호출한다. 이런 식으로 쭉 밑으로 내려 가다보면, View 의 dispatchTouchEvent(event) 로 가게 되고, 여기서 최종적으로 View 의 OnTouchEvent() 를 호출하게 된다.
하지만 참고로 Window 가 가장 밑에 있는 녀석을 이야기 하는 것이다. 가장 마지막의 child 가 가장 상위의 widget 이 되는 것이다.
출처 : http://i5on9i.blogspot.kr/2012/12/ontouch-ontouchevent.html
'Developer > Android' 카테고리의 다른 글
해시키 뽑아오는 방법 (0) | 2017.02.24 |
---|---|
lombok 어노테이션으로 getter/setter을 없애기 (0) | 2016.12.07 |
setWillNotDraw(false) (0) | 2016.11.10 |
유용한 라이브러리 (0) | 2016.11.05 |
include merge 태그 차이점 (0) | 2016.10.25 |