Android View의 visibility 속성 제어 방법 (VISIBLE, GONE, INVISIBLE)

✨ 개요

Android 앱을 개발하다 보면 UI 요소를 보이거나 숨기는 일이 매우 자주 발생합니다.
이때 사용하는 것이 바로 View.visibility 속성입니다.

이 포스트에서는 각 속성의 차이와 실제 사용 방법을 소개합니다.


1. ✅ visibility 속성 종류 비교

속성 설명 공간 차지 여부
VISIBLE View가 화면에 표시됨 차지함
INVISIBLE View가 보이지 않지만 레이아웃 공간 차지 차지함
GONE View가 보이지 않고 공간도 제거됨 안 차지함

2. ✅ Visibility 코드

2.1 코틀린 코드

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)

    with(binding) {
        visibleButton.setOnClickListener {
            button.isVisible = true  //button.visibility = View.VISIBLE
            checkVisibility(button)
        }

        invisibleButton.setOnClickListener {
            button.isInvisible = true  //button.visibility = View.INVISIBLE
            checkVisibility(button)
        }

        goneButton.setOnClickListener {
            button.isGone = true  //button.visibility = View.GONE
            checkVisibility(button)
        }
    }

}

private fun checkVisibility(view: View) {
    when (view.visibility) {
        View.VISIBLE -> Log.e(TAG, "VISIBLE")
        View.INVISIBLE -> Log.e(TAG, "INVISIBLE")
        View.GONE -> Log.e(TAG, "GONE")
        else -> Log.e(TAG, "NONE")
    }
}

2.2 확장 함수

// 확장함수 사용
fun View.visible() { visibility = View.VISIBLE }
fun View.invisible() { visibility = View.INVISIBLE }
fun View.gone() { visibility = View.GONE }

with(binding) {
    visibleButton.setOnClickListener {
        button.visible()
    }

    invisibleButton.setOnClickListener {
        button.invisible()
    }

    goneButton.setOnClickListener {
        button.gone()
    }
}

3. 🔍 주의사항


4.🧠 결론



Related Posts