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