느낌은 아는데 제목을 정하기가 쉽지 않군요.
레이아웃을 작업할 때 뒤에 배치된 버튼이나 레이아웃에 대한 클릭이벤트를 무시하고 싶을 때가 있습니다.
화면 전체를 덮는 레이아웃을 만들어서 하위에 있는 이벤트를 막는 경우도 있구요.
아래의 코드를 화면 전체를 덮는 최 상단 레이아웃에 적용 시키면, 하위에 있는 레이아웃에 클릭이벤트가 전달되지 않습니다.
mTopLayout.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return true; } });
위의 코드에서 핵심은 return 값을 true 주는 것인데 Developer 에는 아래 와 같이 적혀 있습니다.
Returns
- True if the listener has consumed the event, false otherwise.
해석해 보면 true로 설정할 경우 이벤트를 없애고(즉, 다음에 받을 차례인 리스너들에게 전달하지 않는다는 뜻입니다),
false 인 경우 이벤트를 넘겨준다는 말이군요.
클릭이벤트 때문에 고생하시는 분들 위의 코드를 적용해보세요~
'Programming > Android' 카테고리의 다른 글
[Android] TextSize, 텍스트 사이즈 DIP, DP 코드로 적용 방법 (0) | 2017.03.29 |
---|---|
[Android] 키보드 위에 레이아웃, 버튼 올리기 (0) | 2016.07.26 |
[Android] 앱 캐시 제거(Webview 등) (0) | 2015.04.27 |
[Android] Notification에 큰 이미지 적용하기 (2) | 2014.12.30 |
[Android] drawable 리소스를 비트맵으로 변환. drawable resource to bitmap (0) | 2014.12.26 |