2011-01-18 5 views
4

ImageView와 TextView가있는 사용자 정의보기가 있고 내 사용자 정의보기에 onClickListener가 구현되었습니다. 문제는 ImageView가 onClick 이벤트를 소비하고 있다는 것입니다. (어디든 상관없이 사용자가 내 컨트롤을 클릭 할 수 있기를 바랍니다.) 나는 onClick of the Image/TextView도들을 수 있었지만 나에게는 더러워 보였다.컨트롤이 onClick 이벤트를 사용하기 때문에 Android 루트/버블 이벤트가 발생합니다.

안드로이드에서 버블/라우트하는 방법이 있습니까? 아니면 또 다른 좋은 해결책이 될까요?

답변

3

사용자 정의보기에 onClickListener을 설정 했습니까?

사용자 정의보기를 클릭 가능으로 설정하십시오.

하위 뷰에서 클릭 수신기를 설정하지 않는 것이 좋습니다.

이제 작동합니까?

+0

감사합니다. setClickable이 작업을 수행했습니다! – ShadowMare

9

View.onClick() 이벤트가 거품을 일으키지 않습니다. 두 가지 가능한 솔루션 :

  1. 당신 아이 뷰에 등록 OnCLickListener 다음 부모에 performClick()를 호출하여 이벤트를 전달합니다.

  2. OnTouchListener을 사용하면 어린이보기의 onTouch() 메서드에서 false 만 반환됩니다. 클릭을 에뮬레이트하기 위해 터치 다운 & 상승을 고려해야하므로 더 많은 작업이 필요합니다.

+0

설명해 주셔서 감사합니다. 나는 당신과 페드로스의 답변을 조합 해 볼 것입니다! – ShadowMare

+1

첫 번째 방법을 사용하여이 작업을 수행했습니다. – ajma

+0

부모가 자녀에 의해 보호되는 경우 사용 가능한 솔루션입니다. 단순히 "클릭 가능"으로 설정하는 것만으로는 그러한 상황에서는 도움이되지 않지만, 부모 부분에 도달 할 수 있다면 도움이됩니다. 다음은 저에게 효과적이며 최소한의 코드가 필요합니다 : http://stackoverflow.com/a/18959830/189764 – Atorian