自定义高度和颜色RecyclerView ItemDecoration
自定义RecyclerView ItemDecoration,针对RecyclerView的横向和竖向的分割线,具体特点如下
- 支持像ListView一样可以使用颜色作为分隔线(也支持drawable)
- 支持自定义分割线的高度
- 支持控制是否显示最后一条分割线
下面贴上完整代码供参考
/**
* recycler view 横竖方向使用的divider
*
* @author wangjian
*/
public class LinearDividerItemDecoration extends RecyclerView.ItemDecoration {
public static final int HORIZONTAL = 0;
public static final int VERTICAL = 1;
private static final String TAG = "DividerItem";
private static final int[] ATTRS = new int[]{android.R.attr.listDivider};
private Context mContext;
private Drawable mDivider;
private int mOrientation;
private int mDividerHeight;
private final Rect mBounds = new Rect();
private boolean showLastDivider;
public LinearDividerItemDecoration(Context context, int orientation) {
this.mContext = context;
TypedArray a = context.obtainStyledAttributes(ATTRS);
this.mDivider = a.getDrawable(0);
if (this.mDivider == null) {
Log.w("DividerItem", "@android:attr/listDivider was not set in the theme used for this LinearDividerItemDecoration. Please set that attribute all call setDrawable()");
}
a.recycle();
this.setOrientation(orientation);
}
/**
* 设置divider方向
*
* @param orientation 方向
*/
public void setOrientation(int orientation) {
if (orientation != HORIZONTAL && orientation != VERTICAL) {
throw new Illegal