안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요 질문이 있어 글 올립니다.^^
제가 스레드를 돌려서 핸들러로 sendEmptyMessage로 0과 1을 보내는데요
0을 보내면 linearlayout을 gone하고 1을 보내면 visible합니다.
그런데 이렇게 해서 실행해보면 1을 보낼때 visible이 안되는겁니다.
이거저거 해보다가 0을 보낼때 gone하던것을 invisible로 바꿔봤습니다.
그런데 이번에는 1을 보낼때 visible이 되네요^^
무슨 차이가 있는걸까요?? gone한 후에 visible시키려면 뭔가 다른 설정이
필요한건가요? 여태까지 이랬던적이 없어서 심히 난감하네요....
경험 있으신분 댓글 부탁드립니다.
제가 스레드를 돌려서 핸들러로 sendEmptyMessage로 0과 1을 보내는데요
0을 보내면 linearlayout을 gone하고 1을 보내면 visible합니다.
그런데 이렇게 해서 실행해보면 1을 보낼때 visible이 안되는겁니다.
이거저거 해보다가 0을 보낼때 gone하던것을 invisible로 바꿔봤습니다.
그런데 이번에는 1을 보낼때 visible이 되네요^^
무슨 차이가 있는걸까요?? gone한 후에 visible시키려면 뭔가 다른 설정이
필요한건가요? 여태까지 이랬던적이 없어서 심히 난감하네요....
경험 있으신분 댓글 부탁드립니다.
2010.11.10 05:08:32
gone 과 visible 과 invisible 의 차이는
gone 은 view 가 차지하는 영역자체를 없애는거구요
invisible 은 영역은 유지하되 view 만 안그려주는거고
visible 은 영역을 차지하면서 view 를 그려주는거죠.
지금 물어보시는 내용을 보면.. 코드가 있어야 확실히 알 수 있겠지만 gone 된 상태에서
view 가 차지할 layout 영역이 없거나.. 좁거나.. 뭐 이러지 않았을까 생각합니다.
visibility 를 이용하시려면 RelativeLayout 을 이용하시기를 강력히 추천해드립니다.
LinearLayout 을 사용하시지 않았을까 싶은데.. 그럼 fill_parent 같은걸 이용하셨다면
지금 보이고/없애고 하시고 싶은 view 가 차지할 영역이 없을수도 있거든요