package com.bst.kpw.view.adapter.eventobservers;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
public class EventObserversItemDecoration extends RecyclerView.ItemDecoration {
public static final int HORIZONTAL = LinearLayoutManager.HORIZONTAL;
public static final int VERTICAL = LinearLayoutManager.VERTICAL;
private Paint paint;
private int orientation;
private int color;
private int size;
public EventObserversItemDecoration() {
this(VERTICAL);
}
public EventObserversItemDecoration(int orientation) {
this.orientation = orientation;
paint = new Paint();
}
@Override
public void onDraw(Canvas c, RecyclerView parent) {
if (orientation == VERTICAL) {
drawVertical(c, parent);
} else {
drawHorizontal(c, parent);
}
}
public void setColor(int color) {
this.color = color;
paint.setColor(color);
}
public void setSize(int size) {
this.size = size;
}
public void drawVertical(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++) {
if (i == 0) {
continue;
}
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 + size;
c.drawRect(left, top, right, bottom, paint);
}
}
public void drawHorizontal(Canvas c, RecyclerView parent) {
final int top = parent.getPaddingTop();
final int bottom = parent.getHeight() - parent.getPaddingBottom();
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 left = child.getRight() + params.rightMargin;
final int right = left + size;
c.drawRect(left, top, right, bottom, paint);
}
}
@Override
public void getItemOffsets(Rect outRect, int itemPosition, RecyclerView parent) {
if (orientation == VERTICAL) {
outRect.set(0, 0, 0, size);
} else {
outRect.set(0, 0, size, 0);
}
}
}
//
EventObserversItemDecoration dividerLine = new EventObserversItemDecoration(EventObserversItemDecoration.VERTICAL);
dividerLine.setSize(DIVIDE_LINE_SIZE);
dividerLine.setColor(GetResourceUtil.getColor(getApplicationContext(),R.color.light_gray));
recyclerView.addItemDecoration(dividerLine);