반응형
안드로이드상에서 framelayout에 여러 컨텐츠를 넣고 배치할때 가끔 button 또는 layout 클릭이벤트가 중복되어 (즉 상위 컨테이너 이벤트가 하위 컨테이너로 전달되는 경우) 엄청 곤란할 때가 많습니다.
저는 실제로 다이어리 예제 앱을 만들다가 이런 경우가 발생했었는데요.. ㅠ
파란부분에서 캐러셀뷰 이미지 뷰 클릭이벤트를 구현하였고 이 이벤트가 왼쪽 상단 노란부분의 뒤로가기 버튼과 곂치는 일이 발생하였습니다.
그결과 왼쪽 상단 뒤로가기 버튼을 클릭했을 때에도 사진 업로드 팝업이 뜨게 되는 일이 발생하게 되었습니다.
이에 대한 해결법은 매우 간단합니다.
// 상단의 TopMenu가 클릭될때 뒤쪽의 캐러셀도 같이 터치되는 동작을 막기위한 코드
RelativeLayout rlTopMenu;
rlTopMenu = v.findViewById(R.id.rl_top_menu);
rlTopMenu.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent e) {
return true;
}
});
위와 같이 상단 네비게이션에 onTouchEventListener 이벤트를 설정하고 터치 이벤트가 하위 컨테이너로 전달되지 않도록 막아주면 끝입니다. ^^
true일 경우 이벤트를 없애고 하위 레이아웃들에게 이벤트를 전달하지 않는다는 의미라고 합니다.
감사합니다 :)
참고 :
반응형
'Native 개발 > 안드로이드 개념 정리' 카테고리의 다른 글
안드로이드 : 웹뷰에서 주소창 없애기 (0) | 2022.08.30 |
---|---|
안드로이드 - 햇갈리는 Toolbar와 ActionBar 정리 (0) | 2019.09.20 |
Lombok 설치시 transformClassesWithDexBuilderForDebug 에러 (0) | 2019.08.07 |
안드로이드 - 거주지 입력 - 동주소까지 입력받기 (노가다) (1) | 2019.06.24 |
안드로이드 - versionCode 와 versionName (0) | 2019.04.10 |