개발 창고/Android

[Kotlin] View 보이지/감추기 (visible/invisible)

로이제로 2023. 6. 14. 22:00
반응형
fun fnToggle() {
    // myView 라는 View가 있는 경우
	val v = findViewById<View>(R.id.myView)
    
    // view가 지금 화면에 보이는 경우
    if (v.isVisible()) {
    	// view를 화면에서 숨김
        v.visibility	= View.INVISIBLE
        v.height		= 0
        
    // view가 지금 화면에 보이지 않는 경우
    } else {
    	// view를 화면에 보여줌
        v.visibility	= View.VISIBLE
        v.height		= 60
    }
    
    // visibiile에 따라 화면이 크기가 조정되어야 하는 경우
    runOnUiThread{
    	val vg = findViewById<ViewGroup>(R.id.myGroup)
        vg.invalidate()
        vg.requestLayout()
    }
}

 

 kotlin에서는 view가 보이는지 여부는 isVisible() 메서드를 사용하고, 감추려면 visibility를 View.INVISIBLE로 하고 보이려면 View.VISIBLE로 적용해 주면 됩니다.

 

 만약에 해당 view를 숨기거나 보일 때 화면의 전반적인 크기가 조정되어야 한다고 가정하고, view를 감싸고 있는 변경 대상인 Layout 등의 ViewGroup이 myGroup이라면, 해당 view크기를 조정한 후에 ViewGroup을 별도의 스레드에서 invalidate / requestLayout 해주면 됩니다.

반응형