나의 플랫폼/안드로이드

[Kotlin] View Height, Width 변경

GsBOB 2018. 8. 21. 22:41

Kotlin의 Extension 기능을 이용하면 쉽게 View에 크기를 조절할 수 있다.


/**
 * Extension method to set View's height.
 */
fun View.setHeight(value: Int) {
    val lp = layoutParams
    lp?.let {
        lp.height = value
        layoutParams = lp
    }
}
/**
 * Extension method to set View's width.
 */
fun View.setWidth(value: Int) {
    val lp = layoutParams
    lp?.let {
        lp.width = value
        layoutParams = lp
    }
}

http://kotlinextensions.com/#view


위 두 함수를 추가 해놓은 후,

아무 View에서나 함수를 호출 해서 사용하면 된다.


참고용으로 아래는 내가 테스트용으로 만든 RecyclerView에서 item 높이를 변경 하는 소스 이다.


class ViewHolder(val binding:LayoutCardBinding, itemHeight:Int?): RecyclerView.ViewHolder(binding.root) {
init {
if (itemHeight != null) {
binding.root.setHeight(itemHeight)
}
}
}


binding은 DataBinding을 사용한 것으로,

root View에 크기를 변경한 소스 이다.


참고 하세요.