我正在开发一个应用程序,我有一个recyclerview列表,我想添加一个项目分隔符。我已经创建了ItemDividerDecorator类和xml布局文件,但我没有连接到回收器视图。
我知道如何在java中做,类似这样的:
recyclerView.addItemDecoration(
new DividerItemDecoration(ContextCompat.getDrawable(getApplicationContext(),
R.drawable.item_separator)));
但是我怎么能在Kotlin中做,我也试图在Android Studio中转换它,但显示了几个错误。这是我的装饰类:
private val mdivider:Drawable
init{
this.mdivider = mdivider
}
override fun onDrawOver(canvas: Canvas, parent:RecyclerView, state:RecyclerView.State) {
val left = parent.getPaddingLeft()
val right = parent.getWidth() - parent.getPaddingRight()
val childCount = parent.getChildCount()
for (i in 0 until childCount)
{
val child = parent.getChildAt(i)
val params = child.getLayoutParams() as RecyclerView.LayoutParams
val top = child.getBottom() + params.bottomMargin
val bottom = top + mdivider.getIntrinsicHeight()
mdivider.setBounds(left, top, right, bottom)
mdivider.draw(canvas)
}
}
任何帮助都很感激
3条答案
按热度按时间dgsult0t1#
对于Kotlin:
如果你这样初始化:
然后在onCreateView中
如果你在一个活动中使用,那么使用
applicationContext
ttvkxqim2#
在
Kotlin
中尝试此操作默认项目分隔符
可绘制为项目分隔符
对于
Java
fumotvh33#
添加材质分隔符为
并分配给回收器视图,
在apply范围内,您可以自定义特定于分隔符的内容,例如插入,颜色等。