마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

뷰가 겹칠시 원하는 뷰만 터치가 되게 하고 싶습니다.

0 추천
프레임 레이아웃등을 사용하여

뷰를 중첩시킬 때

현재 제일 상위에 보이는 뷰만(레이아웃이나 이미지뷰겠죠)

터치가 되도록 하고 싶습니다.

가능한 방법이 있을까요?

현재 그냥 중첩 해봤더니 밑에 깔린 레이아웃의 뷰들이 터치가 되어서요

다이얼로그처럼 제가 현재 보고있는 뷰만 터치가 입력되게 하는 방법은

무엇일까요?

미리 답변 주시는 분께 감사인사 드립니다. ^^
뷰, 중첩, 레이아웃 님이 2016년 10월 28일 질문

3개의 답변

0 추천
일단 여러방법이 있을겁니다

1. 중첩이될때 하위에있는 뷰를 Gone시킨다.

2. 밑에깔린 뷰들의 이벤트에 flag값을 줘서 백에 있을때는 터치가 되지만 안되게 보이게 한다

3. 상위로 뷰가 올라올때 상위뷰의 전체영역의 해당 하는부분 Layout에 터치 이벤트를 줘서 이벤트를 가로체게 만드는 3가지 방법이 일단 생각나는 방법이네요
익명사용자 님이 2016년 10월 28일 답변
0 추천

View.OnTouchListener 를 이용

Alex77 (260 포인트) 님이 2016년 10월 28일 답변
0 추천
FrameLayout은 나중에 추가되는 뷰가 위로 배치되게 됩니다.
Child views are drawn in a stack, with the most recently added child on top
아마도 클릭되는 뷰는 밑에 깔린 뷰가 아니라 위에 올라와 있는 뷰로 보입니다. 밑에 있다고 생각되는 뷰를 터치해서 클릭 이벤트가 동작하는지 확인해 보세요.
spark (227,830 포인트) 님이 2016년 10월 29일 답변
...