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" 에 들어간다.
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[Android/안드로이드] Dialog 고급정보. (0) | 2012.05.25 |
---|---|
[Android/안드로이드] Menu 에 대한 고급정보. (0) | 2012.05.25 |
[Android/안드로이드] XML Layout. (0) | 2012.05.24 |
[Android/안드로이드] Thread 고급정보. (2) | 2012.05.23 |
[Android/안드로이드] IntentFilter 고급정보. (0) | 2012.05.23 |
댓글