recycleview万能分割线

来源:互联网 发布:淘宝服务市场无线端 编辑:程序博客网 时间:2024/05/22 11:15
public class DividerItemDecoration extends RecyclerView.ItemDecoration {    private int space;    public DividerItemDecoration() {        this(8);    }    public DividerItemDecoration(int space) {        this.space = space;    }    @Override    public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {        super.onDraw(c, parent, state);    }    @Override    public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {        super.onDrawOver(c, parent, state);    }    @Override    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {        super.getItemOffsets(outRect, view, parent, state);        int position = parent.getChildAdapterPosition(view);        int childCount =  parent.getAdapter().getItemCount();        if (parent.getLayoutManager() instanceof GridLayoutManager) {            outRect.bottom = 28;            GridLayoutManager gridLayoutManager = (GridLayoutManager) parent.getLayoutManager();            int spanCount = gridLayoutManager.getSpanCount();            int span = gridLayoutManager.getSpanSizeLookup().getSpanSize(position);            int spanIndex = gridLayoutManager.getSpanSizeLookup().getSpanIndex(position, spanCount);            // FIXME: 2016/9/9 最长的一条默认不添加左右边距,如果需要去掉此if语句            if (span < spanCount) {                if (spanIndex == 0) {                    outRect.left = space;                    outRect.right = space / 2;                } else if (spanIndex + span >= spanCount) {                    outRect.left = space / 2;                    outRect.right = space;                } else {                    outRect.left = space / 2;                    outRect.right = space / 2;                }            }        } else if (parent.getLayoutManager() instanceof LinearLayoutManager) {            outRect.top = space;            if (position >= childCount - 1) {                outRect.bottom = space;            }        }    }}
原创粉丝点击