20230809 visibility

기메단·2023년 8월 9일
0

TIL

목록 보기
18/44

visibilty

뷰가 화면에 출력되어야 하는지에 대한 속성이다.
visible, invisible, gone 값으로 설정한다.
invisible, gone 값은 모두 화면에 뷰가 보이지 않게 하지만 layout 내에서 사이즈를 확보하는지에 대한 차이가 있다.

invisible로 했을 경우


class MainActivity : AppCompatActivity() {

	//뷰 객체를 클래스 멤버 변수로 선언 
    lateinit var visiblaButton: Button 
    lateinit var invisibleButton : Button
    lateinit var imageView : ImageView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        visiblaButton = findViewById(R.id.btn1)
        invisibleButton = findViewById(R.id.btn2)
        imageView = findViewById(R.id.image1)

        visiblaButton.setOnClickListener {
            imageView.visibility = View.VISIBLE 
            // visibility 설정 값을 VISIBLE로 뷰가 보이게 설정 
        }
        invisibleButton.setOnClickListener {
            imageView.visibility = View.INVISIBLE
            // visibility 설정 값을 INVISIBLE로 뷰가 안보이게 설정
        }
    }
}

gone으로 했을 경우


visiblaButton.setOnClickListener {
	imageView.visibility = View.VISIBLE
	}
invisibleButton.setOnClickListener {
    imageView.visibility = View.GONE
    // gone 으로 뷰가 안보이게 설정
    }

그러니깐 invisible로 설정했을 경우 뷰만 보이지 않고 자리(사이즈)는 차지하고 있다. gone으로 했을 경우 자리조차 확보하지 않음. 임의의 순간 visibility 값을 조정해서 사이즈 확보하면서 나오게 할 수 있음.

visibility는 특정 시점에 뷰를 출력해야할 경우 사용한다.

MainActivity 클래스에서 레이아웃을 구현할 수 있도록 해봤다. 사실 activity 클래스에서는 많은 기능들을 구현해야하기 때문에 이런 방식으로 구현하는 일은 많이 없을 것 같다. 근데 혹시 모르니 알고는 있으려고 작성해봄.

1개의 댓글

comment-user-thumbnail
2023년 8월 9일

따로 개인공부한 내용을 보기쉽게 정리해서 올려주셔서 저도 한 번 시도해 봐야겠네요

답글 달기