package com.marshalchen.common.uimodule.twowayview.widget; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Rect; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ItemDecoration; import android.util.AttributeSet; import com.marshalchen.common.uimodule.R; /** * {@link android.support.v7.widget.RecyclerView.ItemDecoration} that applies a * vertical and horizontal spacing between items of the target * {@link android.support.v7.widget.RecyclerView}. */ public class SpacingItemDecoration extends ItemDecoration { private final ItemSpacingOffsets mItemSpacing; public SpacingItemDecoration(Context context, AttributeSet attrs) { this(context, attrs, 0); } public SpacingItemDecoration(Context context, AttributeSet attrs, int defStyle) { final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.twowayview_SpacingItemDecoration, defStyle, 0); final int verticalSpacing = Math.max(0, a.getInt(R.styleable.twowayview_SpacingItemDecoration_android_verticalSpacing, 0)); final int horizontalSpacing = Math.max(0, a.getInt(R.styleable.twowayview_SpacingItemDecoration_android_horizontalSpacing, 0)); a.recycle(); mItemSpacing = new ItemSpacingOffsets(verticalSpacing, horizontalSpacing); } public SpacingItemDecoration(int verticalSpacing, int horizontalSpacing) { mItemSpacing = new ItemSpacingOffsets(verticalSpacing, horizontalSpacing); } @Override public void getItemOffsets(Rect outRect, int itemPosition, RecyclerView parent) { mItemSpacing.getItemOffsets(outRect, itemPosition, parent); } }