aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005/dsub/view/GridSpacingDecoration.java
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2015-12-20 13:04:33 -0800
committerScott Jackson <daneren2005@gmail.com>2015-12-20 13:04:33 -0800
commit7643d4fb60b91f8cc87510f5f09d841993ec2917 (patch)
tree16754e39a2176b736b1b4fd2966a3e00dab9aeea /app/src/main/java/github/daneren2005/dsub/view/GridSpacingDecoration.java
parent2f459f8c3f082a9f3adfc546deffe554e625c28b (diff)
downloaddsub-7643d4fb60b91f8cc87510f5f09d841993ec2917.tar.gz
dsub-7643d4fb60b91f8cc87510f5f09d841993ec2917.tar.bz2
dsub-7643d4fb60b91f8cc87510f5f09d841993ec2917.zip
Fix headers screwing up GridSpacingDecoration
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/view/GridSpacingDecoration.java')
-rw-r--r--app/src/main/java/github/daneren2005/dsub/view/GridSpacingDecoration.java12
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 */