안드로이드/이론관련

View.GONE과 View.INVISIBLE의 차이

닉네임못짓는사람 2021. 12. 8. 08:55
반응형

안드로이드 프로그래밍을 할 때 개발자는 View의 Visibility를 설정할 수 있다.

이때 View를 보여주려면 View.VISIBLE, View를 숨기려면 View.GONE 또는 View.INVISIBLE을 쓸 수 있는데

여기서 GONE과 INVISIBLE는 둘 다 View를 숨기지만 차이점이 있다.

 

먼저, INVISIBLE의 경우는 View를 화면에 그리지만 사용자에게 보여주진 않는다.

즉, View가 실질적으로 그려져 있기 때문에 Layout에 공간을 차지하고 있다.

 

반면, GONE의 경우 화면에 View를 그리지 않고, 때문에 Layout에 공간을 차지하지도 않는다.

 

때문에 View들을 일렬로 늘어놓은 뒤, 가장 앞에 있는 View의 Visibility를 INVISIBLE로 설정해도

공간은 차지하고 있기 때문에 View들의 배치는 바뀌지 않는다.

하지만 Visibility를 GONE으로 설정하면 해당 View가 있던 공간을 다른 View들이 채우게된다.

 

또한 View.GONE상태로 View를 초기화 할 경우 초기화가 되지 않았을 수 있고,

때문에 임의의 오류가 발생할 수 있다.

따라서 View를 처리(크기 조정, 이동 등)하기 전에 View를 VISIBLE또는

INVISIBLE상태로 바꾸어

화면에 렌더링(그리기) 한 뒤 처리해야 한다.

일렬로 배치된 4개의 View
가장 위의 View를 INVISIBLE로 했을 때.
가장 위의 View를 GONE으로 했을 때

반응형

'안드로이드 > 이론관련' 카테고리의 다른 글

View와 ViewGroup  (0) 2021.12.19
ANR(Application Not Responding)  (0) 2021.12.18
SharedPreferences (안드로이드)  (0) 2021.10.25
LayoutInflater(안드로이드)  (0) 2021.10.25
Annotation(어노테이션)?  (0) 2021.08.18