RecyclerView ItemDecoration 自定义高度和颜色

本文介绍了如何在RecyclerView中自定义ItemDecoration,以实现分隔线的颜色和高度定制,包括支持颜色或drawable作为分隔线,自定义高度,并能控制最后一条分割线的显示与否。文中提供完整代码示例,适用于横竖向布局,适用于不同界面需求。
摘要由CSDN通过智能技术生成

自定义高度和颜色RecyclerView ItemDecoration

自定义RecyclerView ItemDecoration,针对RecyclerView的横向和竖向的分割线,具体特点如下

  1. 支持像ListView一样可以使用颜色作为分隔线(也支持drawable)
  2. 支持自定义分割线的高度
  3. 支持控制是否显示最后一条分割线

下面贴上完整代码供参考

/**
 * 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
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值