안드로이드에서 레이아웃이나 버튼 이미지 뷰 등등 xml에서 제어 가능한 부분을 조건에 따라 보여주고 숨길 수 있는 방법이 있었다.




layout.setVisibility(View.VISIBLE);

해당 뷰를 보여줌


layout.setVisibility(View.INVISIBLE);

해당 뷰를 안 보여줌(공간은 존재)


layout.setVisibility(View.GONE);

해당 뷰를 안 보여줌(공간마저 감춤)




INVISIBLE과 GONE의 차이는 공간을 보여주느냐 안 보여주느냐의 차이이다.




예를 들면 1 2 3 4 5 의 숫자가 있을때 3을 숨기려고 한다면


INVISIBLE은 1 2 " " 4  5 이런 식으로 3은 없지만 자리는 남아있고


GONE은 1 2 4 5 이런 식으로 3과 공간 모두 숨기게 된다.




사용 예로



LinearLayout layout = (LinearLayout) findViewById(R.id.first);
LinearLayout layout2 = (LinearLayout) findViewById(R.id.second);
LinearLayout layout3 = (LinearLayout) findViewById(R.id.third);

switch (checkedId) {

case R.id.button:

	
	layout.setVisibility(View.VISIBLE);
	layout2.setVisibility(View.INVISIBLE);
	layout3.setVisibility(View.GONE);



이렇게 사용하면 id가 button 인 버튼을 누르면 

id가 first인 레이아웃은 보여지고

second 레이아웃은 보이지 않고 그냥 빈 공간만 나오게 되며

third 레이아웃은 아예 삭제된듯이 숨겨지게 된다.




그리고 버튼을 선택하기전에 초기상태에서 숨기려면 직접 xml 파일로 가서 해당 레이아웃에


android:visibility="gone" 


옵션을 주면 처음부터 보여지지 않게 된다.



레이아웃 뿐만 아니라 버튼이나 이미지 뷰 텍스트 뷰 등등 여러가지도 적용할 수 있다.



+ Recent posts