问题描述
这是我自定义的商品修饰类: 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 (将#修改为@)