[Android] View visibility

Jbro·2023년 8월 7일
0

Android 기초

목록 보기
14/23
post-thumbnail
post-custom-banner

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
                }
            }
        }

    }
}
profile
안드로이드 개발자 꿈나무
post-custom-banner

0개의 댓글