package com.crystal.view
import android.graphics.Canvas
import android.graphics.Rect
import android.graphics.drawable.Drawable
import android.view.View
import androidx.recyclerview.widget.RecyclerView
/**
* 使用drawable自定义recyclerview分割线
* on 2022/11/3
*/
class ItemDecoration(val drawable: Drawable) : RecyclerView.ItemDecoration() {
override fun onDraw(c: Canvas, parent: RecyclerView, state: RecyclerView.State) {
val childCount = parent.childCount
//计算要绘制的rect
val rect = Rect()
rect.left = parent.paddingLeft
rect.right = parent.width - parent.paddingRight
for (i in 0 until childCount) {
val childView = parent.getChildAt(i)
rect.top = childView.bottom
rect.bottom = rect.top + drawable.intrinsicHeight
//设置绘制矩形区域
drawable.setBounds(rect.left, rect.top, rect.right, rect.bottom)
//进行绘制
drawable.draw(c)
}
}
override fun getItemOffsets(
outRect: Rect,
view: View,
parent: RecyclerView,
state: RecyclerView.State
) {
outRect.bottom += drawable.intrinsicHeight
}
}
Android 使用drawable自定义Recyclerview分割线
最新推荐文章于 2024-04-29 09:42:32 发布