经常碰到一些场景,每个列表的第一个和最后一个可能间距不一样(意思就是说每个item统一设置一样的间距的话,会不符合自己的预期),此时我们有一个很好的做法就是自定义 ItemDecoration
上代码:
class ItemDecoration(val context: Context) : RecyclerView.ItemDecoration() {
override fun getItemOffsets(
outRect: Rect,
view: View,
parent: RecyclerView,
state: RecyclerView.State
) {
super.getItemOffsets(outRect, view, parent, state)
// 设置间距,比如除了第一个item,别的item的left都是6dp
if (parent.getChildAdapterPosition(view) != 0) {
outRect.left = 6f.dp2px.toInt()
}
}
}