뷰가 화면에 출력되어야 하는지에 대한 속성이다.
visible, invisible, gone 값으로 설정한다.
invisible, gone 값은 모두 화면에 뷰가 보이지 않게 하지만 layout 내에서 사이즈를 확보하는지에 대한 차이가 있다.
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로 뷰가 안보이게 설정
}
}
}
visiblaButton.setOnClickListener {
imageView.visibility = View.VISIBLE
}
invisibleButton.setOnClickListener {
imageView.visibility = View.GONE
// gone 으로 뷰가 안보이게 설정
}
그러니깐 invisible로 설정했을 경우 뷰만 보이지 않고 자리(사이즈)는 차지하고 있다. gone으로 했을 경우 자리조차 확보하지 않음. 임의의 순간 visibility 값을 조정해서 사이즈 확보하면서 나오게 할 수 있음.
visibility는 특정 시점에 뷰를 출력해야할 경우 사용한다.
MainActivity 클래스에서 레이아웃을 구현할 수 있도록 해봤다. 사실 activity 클래스에서는 많은 기능들을 구현해야하기 때문에 이런 방식으로 구현하는 일은 많이 없을 것 같다. 근데 혹시 모르니 알고는 있으려고 작성해봄.
따로 개인공부한 내용을 보기쉽게 정리해서 올려주셔서 저도 한 번 시도해 봐야겠네요