본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android/안드로이드] Input Events.

by 돼지왕 왕돼지 2012. 5. 24.
반응형




http://developer.android.com/guide/topics/ui/ui-events.html 

- event callback 에서의 return 값은 중요하다. 이 return 값은 "event 를 니가 다 처리했는가?" 에 대한 대답이라고 볼 수 있겠다. 예를 들어 onLongClick() 에서 true 를 return 하면 자신이 처리를 한 것이기 때문에 onClick() 으로 event 가 전달되지 않는다. 하지만 onLongClick() 에서 false 를 return 하면, onClick() 이 다음으로 event 를 받는다.


- onTouch() 의 경우는 조금 특별한데, false 를 return 한다는 것은 consume 하지 않을 뿐더러, 추후에 발생하는 event 에 대해 관심이 없음도 나타낸다. 그래서 ACTION_DOWN 에 대해 false 를 return 해버리면 이와 관계된 ACTION_MOVE 나 ACTION_UP 은 event 로 들어오지 않는다.


- onKey() 의 경우는 focus 를 가졌을 경우에만 들어온다. 


- Event 는 view hierarchy 의 top에서부터 tree 를 따라 down 방향으로 전달되어, 최종 목적지에 다다른다. 


- Android는 등록된 event handler 를 가장 먼저 호출한다. 그리고 class 에 정의되어 callback 을 그 다음에 호출한다. 따라서 event handler 등록시에는 return 값을 더욱 더 주의해주어야 한다.


- Activity.dispatchTouchevent() 는 Activity 가 window 로 event 가 dispatch 되기 전에 intercept 할 수 있는 함수이다.


- ViewGroup.onInterceptTouchEvent() 는 ViewGroup 이 child 한테 event 가 전달되기 전에 event 를 catch 할 수 있는 위치.


- ViewParent.requestDisallowInterceptTouchEvent() 는 parent의 onInterceptTouchevent() 를 무효화 시키는데 사용된다.


- 방향키나 trackball 을 건드는 순간 "Touch Mode" 는 벗어나고, Screen 을 터치하는 순간 "Touch Mode" 에 들어간다.



도움이 되셨다면 손가락 꾸욱~




반응형

댓글