Archives
Recent Posts
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Today
Total
관리 메뉴

안드로이드 개발자의 창고

[30일차 Android] View Hide 본문

Computer/Android

[30일차 Android] View Hide

Wise-99 2023. 6. 13. 23:58

 

 

 

출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT

 

 

 

📖 View Hide

  • visibility 속성을 이용하여 View를 숨기거나 표시한다.

 

주요 속성

속성
설명
VISIBLE
View가 보이도록 설정
INVISIBLE
View가 보이지 않도록 설정(자리는 차지함)
GONE
View가 보이지 않도록 설정(자리 차지하지 않음)

 

 

 

예제 코드

activity_main.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" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:srcCompat="@android:drawable/btn_star_big_on" />
</LinearLayout>

 

 

 

MainActivity.kt

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import com.test.android20_viewhide.databinding.ActivityMainBinding

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

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

 

 

 

결과