안녕하세요.
오늘 이것만 계속 붙잡고 있었는데 해결이 되지 않아서 질문 드립니다. ㅠㅠ
책을 보는 중 드래그 & 드랍 하는 예제에 ViewGroup.onInterceptTouchEvent 함수를
사용 했더라고요...
근데 위 함수의 리턴 값에 대한 설명은 없고 그냥 사용하라는 식으로만 나와서 검색을 해봤습니다.
관련 내용이 없어서 api 문서를 봤는데요... 영어 실력이 모자라 잘 이해가 안되네요...
true를 리턴하는 경우 false를 리턴하는 경우가 정확히 뭐가 다른지 모르겠어요..
조언 부탁 드리겠습니다.
다음검색
댓글
댓글 리스트-
작성자슈퍼성근 작성시간 12.03.28 안녕하세요. View에서 받는 이벤트는
- public boolean onTouchEvent (MotionEvent event)
- public boolean onTrackballEvent (MotionEvent event)
- public boolean onKeyUp (int keyCode, KeyEvent event)
- public boolean onKeyShortcut (int keyCode, KeyEvent event)
- public boolean onKeyPreIme (int keyCode, KeyEvent event)
- public boolean onKeyLongPress (int keyCode, KeyEvent event)
- public boolean onInterceptTouchEvent (MotionEvent ev)
... 등등 아주 많습니다.
만일 True로 리턴하면 그 상위 View에는 해당 이벤트를 보내지 않겠다는 의미입니다. -
작성자슈퍼성근 작성시간 12.03.28 예를 들어 LinearLayout(ViewGroud) 내에 Button(View)가 존재하는 경우
Button에서 onTouchEvent 와 같은 터치 이벤트를 처리하고 있을 경우
그 함수내에 True라고 리턴하게 되면 그 상위 View인 LinearLayout에서는
해당 이벤트가 올라가지 않습니다. -
작성자슈퍼성근 작성시간 12.03.28 특정 이벤트를 특정 뷰에서 처리를 완료하고 더 이상 상위 View에게
이벤트를 처리되지 않게 하고 싶다면 True로 셋팅하면 됩니다.
즉 이벤트 후킹.. 가로채기 등으로 생각하시면 쉽겠네요. -
답댓글 작성자옛날꿀호떡 작성자 본인 여부 작성자 작성시간 12.03.28 감사합니다~ 도움이 많이 되었습니다 ^^*