content: package com.alium.orin.views;
  
  import android.graphics.Rect;
  import android.support.v7.widget.GridLayoutManager;
  import android.support.v7.widget.RecyclerView;
  import android.support.v7.widget.StaggeredGridLayoutManager;
  import android.view.View;
  
  /**
   * Created by abdulmujibaliu on 7/12/17.
   * <p>
   * From stackoverflow, casue we lazy AF
   */
  
  public class GridSpacingItemDecoration extends RecyclerView.ItemDecoration {
  
      private int spanCount;
      private int spacing;
      private boolean includeEdge;
  
      public GridSpacingItemDecoration(int spanCount, int spacing, boolean includeEdge) {
          this.spanCount = spanCount;
          this.spacing = spacing;
          this.includeEdge = includeEdge;
      }
  
      @Override
      public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
  
          GridLayoutManager.LayoutParams lp = (GridLayoutManager.LayoutParams) view.getLayoutParams();
          int position = lp.getSpanIndex();
  
          if(position == 0){
              outRect.bottom = spacing; // item bottom
              return;
          }
  
          int column = position % spanCount; // item column
  
          if (includeEdge) {
              outRect.left = spacing - column * spacing / spanCount; // spacing - column * ((1f / spanCount) * spacing)
              outRect.right = (column + 1) * spacing / spanCount; // (column + 1) * ((1f / spanCount) * spacing)
  
              if (position < spanCount) { // top edge
                  outRect.top = spacing;
              }
              outRect.bottom = spacing; // item bottom
          } else {
              outRect.left = column * spacing / spanCount; // column * ((1f / spanCount) * spacing)
              outRect.right = spacing - (column + 1) * spacing / spanCount; // spacing - (column + 1) * ((1f /    spanCount) * spacing)
              if (position >= spanCount) {
                  outRect.top = spacing; // item top
              }
          }
      }
  }