본문 바로가기

프로그래밍/안드로이드

[안드로이드 팁] 안드로이드 View 보임과 안보임, 없음의 차이

안드로이드 View 보임과 안보임, 없음의 차이


안드로이드 팁이라고 하기엔 너무 쉬운 내용이기에 올리지 않으려고 했으나 최근(바로 어제) 개발하면서 이녀석 때문에 반나절이라는 시간을 날린걸 생각하면 가끔은 인지하고 있으면 좋을거 같아 이렇게 흔적을 남깁니다.


오늘 볼것은 바로 VISIBLE, INVISIBLE, GONE 이녀석의 차이점 입니다. 

안드로이드 레퍼런스 사이트에 나와있는 녀석을 보도록 하겠습니다.


android:visibility

Controls the initial visibility of the view.

Must be one of the following constant values.

ConstantValueDescription
visible0Visible on screen; the default value.
invisible1Not displayed, but taken into account during layout (space is left for it).
gone2Completely hidden, as if the view had not been added.

This corresponds to the global attribute resource symbol visibility.

Related Methods


위와 같이 나와 있습니다. 사실 별거 없죠. 저 역시 머릿속에는 보인다 안보인다. 두가지로만 기억하고 있었으며 사용하면서도 " 왜 두가지 경우면 boolean이 아닌 int로 했을까? " 라는 생각을 종종 해보기도 했었네요. 막상 긴시간을 삽질해 보니 "아! 이래서 그렇구나! " 라는 생각이 들었습니다.


visible : 이 녀석은 VIew를 보이도록 합니다.

invisible : 이 녀석은 View가 보이지 않도록 합니다. 단! 공간을 차지하고 있습니다.

gone : 이 녀석은 View가 보이지 않도록 합니다. 단! 공간을 차지하고 있지 않습니다.


꼭 Invisible와 Gone의 차이점은 꼭! 머릿속 어딘가에 기억하시기 바랍니다.


제가 쓰다보니 VISIBLE, INVISIBLE, GONE와 visible, invisible, gone와 같이 대소문자를 섞어서 사용을 했네요.

대문자로 쓰일경우는 자바코드에서 사용됩니다.

  해당View.setVisible(View.GONE);


소문자는 xml 코드상에서 사용됩니다.

  android:visibl = "visible"