Android의 View의 visibility는 View의 가시성 상태를 나타낸다.
이는 View를 보이거나 숨길 때 사용할 수 있다.
Visibility는 다음 세 가지가 있다.
1.visible: View가 화면에 표시
2.invisible: View가 화면에 표시되지 않고, 공간을 차지
3.gone: View가 화면에 표시되지 않고, 공간을 차지하지 않음
xml 코드
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button" />
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:srcCompat="@android:drawable/btn_star_big_on" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:srcCompat="@android:drawable/ic_delete" />
</LinearLayout>
MainActivity 코드
class MainActivity : AppCompatActivity() {
lateinit var activityMainBinding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
activityMainBinding = ActivityMainBinding.inflate(layoutInflater)
setContentView(activityMainBinding.root)
activityMainBinding.run{
imageView2.visibility = View.INVISIBLE
// VISIBLE : View가 보이도록
// INVISIBLE : View가 보이지 않도록(자리는 차지함)
// GONE : View가 보이지 않도록(자리 차지하지 않음)
button.run{
setOnClickListener {
imageView.visibility = View.VISIBLE
// imageView2.visibility = View.INVISIBLE
imageView2.visibility = View.GONE
}
}
button2.run{
setOnClickListener {
// imageView.visibility = View.INVISIBLE
imageView.visibility = View.GONE
imageView2.visibility = View.VISIBLE
}
}
}
}
}