/**
* 快速添加RecyclerView 分隔线
* 只设置了水平(右侧分隔)和垂直方向(下端分隔)
* 通过设置偏移,属于取巧
*/
public class RecyclerViewDivider extends RecyclerView.ItemDecoration {
private int mHeightPx;//分割线高度,单位为px
private int mType;//偏移类型
public static final int BOTTOM = 1001; // 下端偏移
public static final int RIGHT = 1002; // 右端偏移
public RecyclerViewDivider(int height, int type) {
mHeightPx = height;
mType = type;
}
// 设置偏移
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
super.getItemOffsets(outRect, view, parent, state);
switch (mType) {
case BOTTOM:
// left top right bottom
outRect.set(0, 0, 0, mHeightPx);
break;
case RIGHT:
outRect.set(0, 0, mHeightPx, 0);
break;
}
}
}
使用:
//右侧20px 分隔线
mRecyclerView.addItemDecoration(new RecyclerViewDivider(20,RecyclerViewDivider.RIGHT));
//下端20px 分隔线
mRecyclerView.addItemDecoration(new RecyclerViewDivider(20,RecyclerViewDivider.BOTTOM));