diff options
author | Scott Jackson <daneren2005@gmail.com> | 2015-12-20 13:04:33 -0800 |
---|---|---|
committer | Scott Jackson <daneren2005@gmail.com> | 2015-12-20 13:04:33 -0800 |
commit | 7643d4fb60b91f8cc87510f5f09d841993ec2917 (patch) | |
tree | 16754e39a2176b736b1b4fd2966a3e00dab9aeea /app/src/main | |
parent | 2f459f8c3f082a9f3adfc546deffe554e625c28b (diff) | |
download | dsub-7643d4fb60b91f8cc87510f5f09d841993ec2917.tar.gz dsub-7643d4fb60b91f8cc87510f5f09d841993ec2917.tar.bz2 dsub-7643d4fb60b91f8cc87510f5f09d841993ec2917.zip |
Fix headers screwing up GridSpacingDecoration
Diffstat (limited to 'app/src/main')
-rw-r--r-- | app/src/main/java/github/daneren2005/dsub/view/GridSpacingDecoration.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/view/GridSpacingDecoration.java b/app/src/main/java/github/daneren2005/dsub/view/GridSpacingDecoration.java index b59e7157..c6d3dbb1 100644 --- a/app/src/main/java/github/daneren2005/dsub/view/GridSpacingDecoration.java +++ b/app/src/main/java/github/daneren2005/dsub/view/GridSpacingDecoration.java @@ -18,10 +18,12 @@ package github.daneren2005.dsub.view; import android.graphics.Rect; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; +import android.util.Log; import android.util.TypedValue; import android.view.View; public class GridSpacingDecoration extends RecyclerView.ItemDecoration { + private static final String TAG = GridSpacingDecoration.class.getSimpleName(); public static final int SPACING = 10; @Override @@ -39,6 +41,16 @@ public class GridSpacingDecoration extends RecyclerView.ItemDecoration { } int spanCount = getTotalSpan(view, parent); int spanIndex = childIndex % spanCount; + + // If we can, use the SpanSizeLookup since headers screw up the index calculation + RecyclerView.LayoutManager layoutManager = parent.getLayoutManager(); + if(layoutManager instanceof GridLayoutManager) { + GridLayoutManager gridLayoutManager = (GridLayoutManager) layoutManager; + GridLayoutManager.SpanSizeLookup spanSizeLookup = gridLayoutManager.getSpanSizeLookup(); + if(spanSizeLookup != null) { + spanIndex = spanSizeLookup.getSpanIndex(childIndex, spanCount); + } + } int spanSize = getSpanSize(parent, childIndex); /* INVALID SPAN */ |