Recycleview添加分割线

来源:互联网 发布:手机淘宝查看历史价格 编辑:程序博客网 时间:2024/05/22 11:36

recycleview默认是不带有分割线的,但是在项目中,很多地方 都要分割线,


下面有两种办法:

1,在item 布局中,最下面加一条分割线,最简单的

2,

recyclerView.addItemDecoration()方法,
意思就是 在每一个 item  之间加入一个 ItemDecoration
//recycle加分割线public static class ItemDivider extends RecyclerView.ItemDecoration {    private Drawable mDrawable;    public ItemDivider(Context context, int resId) {        //在这里我们传入作为DividerDrawable对象        mDrawable = context.getResources().getDrawable(resId);        RecyclerView r;        recyclerView.addItemDecoration();    }    @Override    public void onDrawOver(Canvas c, RecyclerView parent) {        final int left = parent.getPaddingLeft();        final int right = parent.getWidth() - parent.getPaddingRight();        final int childCount = parent.getChildCount();        for (int i = 0; i < childCount; i++) {            final View child = parent.getChildAt(i);            final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child                    .getLayoutParams();            //以下计算主要用来确定绘制的位置            final int top = child.getBottom() + params.bottomMargin;            final int bottom = top + mDrawable.getIntrinsicHeight();            mDrawable.setBounds(left, top, right, bottom);            mDrawable.draw(c);        }    }    @Override    public void getItemOffsets(Rect outRect, int position, RecyclerView parent) {        outRect.set(0, 0, 0, mDrawable.getIntrinsicWidth());    }}
如上,就可以实现为recycleview添加分割线了。

1 0
原创粉丝点击