package com.mercandalli.android.apps.files.common.view.divider; import android.graphics.Rect; import android.support.v7.widget.RecyclerView; import android.view.View; /** * Created by Jonathan on 31/10/2015. */ public class SpacesItemDecoration extends RecyclerView.ItemDecoration { private final int mSpace; private final int mNbItemsPerRow; public SpacesItemDecoration(final int space) { this(space, 1); } public SpacesItemDecoration(final int space, final int nbItemsPerRow) { mSpace = space; mNbItemsPerRow = nbItemsPerRow; } @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { final int position = parent.getChildLayoutPosition(view); outRect.bottom = mSpace; // Add top margin only for the first item to avoid double space between items if (position < mNbItemsPerRow) { outRect.top = mSpace; } if (mNbItemsPerRow < 2) { outRect.left = mSpace; outRect.right = mSpace; } else { final int n = position % mNbItemsPerRow; if (n == 0) { outRect.left = mSpace; outRect.right = mSpace / 2; } else if (n == mNbItemsPerRow - 1) { outRect.left = mSpace / 2; outRect.right = mSpace; } else { outRect.left = mSpace / 2; outRect.right = mSpace / 2; } } } }