如何在Android中的RecyclerView项目之间的分隔线周围添加垂直边距?

问题描述

这是我自定义的商品修饰类: DividerItemDecorator.kt

class DividerItemDecorator(private val mDivider: Drawable) : Itemdecoration() {

    override fun onDraw(canvas: Canvas,parent: RecyclerView,state: RecyclerView.State) {
        val dividerLeft = parent.paddingLeft
        val dividerRight = parent.width - parent.paddingRight

        val childCount = parent.childCount
        for (i in 0..childCount - 2) {
            val child: View = parent.getChildAt(i)

            val params = child.layoutParams as RecyclerView.LayoutParams

            val dividerTop: Int = child.bottom + params.bottomMargin
            val dividerBottom = dividerTop + mDivider.intrinsicHeight

            mDivider.setBounds(dividerLeft,dividerTop,dividerRight,dividerBottom)
            mDivider.draw(canvas)
        }
    }
}

这是我将自定义商品装饰添加到我的recyclerView的方式:

subNodeBody.addItemdecoration(DividerItemDecorator(ContextCompat.getDrawable(itemView.context,R.drawable.recyclerview_divider)!!))
subNodeBody.adapter = RolesAdapter(subNode.roles)

这是分隔线可绘制对象: recyclerview_divider.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#e7eef3"/>
    <size android:height="0.7dp"/>
    <size android:width="80dp"/>
</shape>

RecyclerView项目之间的分隔线看起来正确。但是上方和下方没有空间。有没有办法在自定义分隔线周围添加自定义边距(顶部,底部,右侧和左侧)?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)