Recyclerview ItemDecoration 간격만 추가하기

James_·2022년 7월 19일
0

item xml에서 마진을 주는 것보다 recyclerview에 addItemDecoration을 추가하는게 성능이 더 좋다는 글을 어디서 본 것 같다.

먼저 ItemDecoration Class를 만들어준다.

class MarginItemDecoration(private val spaceSize: Int) : RecyclerView.ItemDecoration() {
    override fun getItemOffsets(
        outRect: Rect, view: View,
        parent: RecyclerView, 
        state: RecyclerView.State
    ) {
        with(outRect) {
            if (parent.getChildAdapterPosition(view) == 0) {
                top = spaceSize
            }
            left = spaceSize
            right = spaceSize
            bottom = spaceSize
        }
    }
}

recyclerview에 추가해주면 끝

recyclerView.addItemDecoration(
    MarginItemDecoration(resources.getDimensionPixelSize(R.dimen.margin))
)
profile
Android 개발자

0개의 댓글