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

View가 여러 겹일 때, 뒤에 가려진 View 에서 touch 동작 안하게 하는 법.

+1 추천
안녕하세요.

두가지 질문이있는데요,

 

현재 뷰가 3개가 있습니다.

가장 상위인 A에서 버튼을 누르면 .addview로 화면전체에 B가 나타나고 B에서 버튼을 누르면 또 .addview로 화면전체에 C가 나타납니다.

그런데 C에서 뒤로가기를 하면 B로 가고 close 를 하면 A로 가게 하고 싶은데

B로 가는건 getParent().removeVIew(this) 하면 되네요. 그런데 C에서 B를 안거치고 A로 돌아가는 법을 모르겠습니다.

 

두번째 질문은, A라는 레이아웃 위에 B라는 레이아웃을 addview 로 추가해도 가려진 사이로 삐죽 나와있는 A의 버튼이 동작을 하더군요. B가 화면 젤 위에 있을때 뒤에 있는 가려진 뷰인 A는 터치를 안먹게 해야 되는데

어떻게 해야 하는지 모르겠습니다.

 

아시는 분의 도움 부탁드립니다.
탯탯탯 (430 포인트) 님이 2013년 4월 5일 질문

1개의 답변

+1 추천

AddView 하실때의 뷰를 가지고 removeView에서 제거해주시면됩니다.

addview(b) , addview(c)  -> removeView(b), removeView(c) 호출.

터치는 b를 추가할때 a에 Abutton.setEnabled(false)로 작동 안되게 막아주세요.

유포 (200 포인트) 님이 2013년 4월 5일 답변
음... getParent()를 하면 가장 부모인 A의 View를 가리키는건 알겠는데, Class C에서 어떻게 B의 view를 가져올 수 있나요?
그리고 A Class에 버튼이 무려 8개인데.. 위와 같이하면 8개를 다 Enable false 해야되는데요... 만약 다시 A class 화면으로 돌아왔을때 다시 enable 은 어떻게 하는지요?
뷰를 추가할때마다 이전 뷰를 삭제하시면 안될까요?
addView(b)
removeView(a)

addView(c)
removeView(b)

addView(a)
removeView(c)

현재 보여지는 뷰종류를 어떤 변수에 저장하면 될것 같은데요
심플하게 구현하는게 제일 좋죠
...