본문 바로가기

소프트웨어/안드로이드

안드로이드 화면 숨기기 view.setVisibility

#layout.setVisibility(View.VISIBLE) #view.setVisibility(View.GONE) #android


안드로이드 JAVA 활용하여 위와 같이 구성하려면 어떻게야 할까요?


버튼을 눌렀을 경우 layout 이 보이고 한번 더누르면 layout이 사라지게 하려면?


이런 구성은 너무 많이 사용되어져서 실제 APP 구성 시 사용예가 많을 것 같네요


 

여기서 돋보기 버튼 클릭하면 달력날짜를 선택하는 View가 나오는것을 확인 할 수 있는데 이러한 기능을 만들 수 있습니다.




그럼 버튼 이벤트에 해당 코드를 넣어서 만들어보겠습니다.

Button button = (Button) findViewById(R.id.button);
final LinearLayout layout = (LinearLayout) findViewById(R.id.layout);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(layout.getVisibility() == View.VISIBLE){
                layout.setVisibility(View.GONE);
            } else {
                layout.setVisibility(View.VISIBLE);
            }
        }
});


여기서 핵심이 바로 view.setVisibility(View.GONE); / layout.setVisibility(View.VISIBLE); 2개의 코드입니다.


setVisibility는 3가지 속성이 있습니다.


layout.setVisibility(View.VISIBLE);

해당 뷰를 보여줌


layout.setVisibility(View.INVISIBLE);

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


layout.setVisibility(View.GONE);

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


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


만약 화면이 숨겨졌다 보였다 하는 layout 이름이 view2 이고 버튼 이름이 buttonOne이라면 아래와 같이 작성하면 되겠죠?




buttonOne.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                     if(view2.getVisibility()==View.VISIBLE){
                         view2.setVisibility(View.GONE);
                     }else{
                         view2.setVisibility(View.VISIBLE);
                     }
                }
});