SpacesItemDecoration

public classSpacesItemDecorationextendsRecyclerView.ItemDecoration{

private intdividerHeight;

privatePaintpaint;

publicSpacesItemDecoration(Context context) {

dividerHeight= context.getResources().getDimensionPixelSize(R.dimen.margin);

paint=newPaint();

paint.setColor(context.getResources().getColor(R.color.colorAccent));

}

@Override

public voidgetItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {

super.getItemOffsets(outRect, view, parent, state);

/**

* 类似加了一个bottom的padding

*/

outRect.bottom=dividerHeight;

}

@Override

public voidonDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {

super.onDraw(c, parent, state);

intchildCount = parent.getChildCount();

intleft = parent.getPaddingLeft();

intright = parent.getWidth() - parent.getPaddingRight();

for(inti =0; i < childCount -1; i++) {

View view = parent.getChildAt(i);

floattop = view.getBottom();

floatbottom = view.getBottom() +dividerHeight;

/**

* 绘制的矩形也就是从,item的左上角,到右下角,类似于背景,

* 正好显示出一个横线,就是getItemOffsets空出来的范围

*/

c.drawRect(left, top, right, bottom,paint);

}

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容