package com.owen.tvrecyclerview.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 android.util.Log; import com.owen.tvrecyclerview.R; /** * {android.support.v7.widget.RecyclerView.ItemDecoration} that applies a * vertical and horizontal spacing between items of the target * {android.support.v7.widget.RecyclerView}. */ public class SpacingItemDecoration extends ItemDecoration { protected int mVerticalSpacing; protected int mHorizontalSpacing; protected 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.TvRecyclerView_SpacingItemDecoration, defStyle, 0); mVerticalSpacing = Math.max(0, a.getInt(R.styleable.TvRecyclerView_SpacingItemDecoration_android_verticalSpacing, 0)); mHorizontalSpacing = Math.max(0, a.getInt(R.styleable.TvRecyclerView_SpacingItemDecoration_android_horizontalSpacing, 0)); a.recycle(); mItemSpacing = new ItemSpacingOffsets(mHorizontalSpacing, mHorizontalSpacing); } 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); Log.e("SpacingItemDecoration", "itemPosition=" + itemPosition + " , outRect.right"+ outRect.right + " , outRect.left="+outRect.left + " , outRect.top="+outRect.top + " , outRect.bottom="+outRect.bottom ); } }