【发布时间】:2021-11-23 05:24:30
【问题描述】:
嘿,我想在 Recyclerview 的顶部、中间和底部显示分隔线。 How to add dividers and spaces between items in RecyclerView。它可以在中间和底部添加分隔线。但我找不到在第一项之上添加分隔线。有谁知道如何实现这一目标?提前致谢。
import android.content.Context
import android.graphics.Canvas
import android.graphics.drawable.Drawable
import android.view.View
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.letsgetchecked.app.R
class SimpleDividerItemDecoration(private val context: Context) : RecyclerView.ItemDecoration() {
private var drawable: Drawable? = ContextCompat.getDrawable(context, R.drawable.cloudy)
override fun onDrawOver(c: Canvas, parent: RecyclerView, state: RecyclerView.State) {
val left: Int = parent.paddingLeft
val right: Int = parent.width - parent.paddingRight
val childCount: Int = parent.childCount
for (i in 0 until childCount) {
val child: View = parent.getChildAt(i)
val params = child.layoutParams as RecyclerView.LayoutParams
val top: Int = child.bottom + params.bottomMargin
val bottom: Int = top + drawable?.intrinsicHeight!!
drawable?.setBounds(left, top, right, bottom)
drawable?.draw(c)
}
}
}
预期输出
我得到了什么
【问题讨论】:
标签: android kotlin android-recyclerview android-drawable divider