class CustomItemDecoration(private vararg val itemDivider: Drawable) :
RecyclerView.ItemDecoration() {
companion object {
const val TAG = "CustomItemDecoration"
}
/**
* 每次测量Item尺寸的时候调用
*/
override fun getItemOffsets(
outRect: Rect,
view: View,
parent: RecyclerView,
state: RecyclerView.State
) {
super.getItemOffsets(outRect, view, parent, state)
outRect.bottom += itemDivider[0].intrinsicHeight
}
/**
* 绘制Item之前调用
*/
override fun onDraw(c: Canvas, parent: RecyclerView, state: RecyclerView.State) {
super.onDraw(c, parent, state)
val childCount = parent.childCount
val rect = Rect()
rect.left = parent.paddingLeft
rect.right = parent.width - parent.paddingRight
Log.d(TAG, "childCount = $childCount")
for (i in 0 until childCount) {
val child = parent.getChildAt(i)
rect.top = child.bottom
rect.bottom = rect.top + itemDivider[0].intrinsicHeight
if (i and 1 == 0) {
Log.d(TAG, "i = $i")
itemDivider[0].bounds = rect
itemDivider[0].draw(c)
} else {
itemDivider[1].bounds = rect
itemDivider[1].draw(c)
}
}
}
/**
* 绘制Item之后调用
*/
override fun onDrawOver(c: Canvas, parent: RecyclerView, state: RecyclerView.State) {
super.onDrawOver(c, parent, state)
}
}
RecycleView分割线
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。