Skip to content

Commit ed54cfd

Browse files
author
Rafael Baboni Dominiquini
committed
Fix issues with recyclerview items with margins
1 parent a61ec32 commit ed54cfd

File tree

3 files changed

+22
-11
lines changed

3 files changed

+22
-11
lines changed

build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ buildscript {
55
jcenter()
66
}
77
dependencies {
8-
classpath 'com.android.tools.build:gradle:1.1.0'
8+
classpath 'com.android.tools.build:gradle:1.3.1'
99

1010
// NOTE: Do not place your application dependencies here; they belong
1111
// in the individual module build.gradle files
@@ -20,9 +20,9 @@ allprojects {
2020

2121
ext {
2222
compileSdkVersion = 22
23-
buildToolsVersion = '22.0.1'
23+
buildToolsVersion = '23.0.1'
2424
targetSdkVersion = 22
2525
minSdkVersion = 14
26-
versionCode = 13
27-
versionName = "0.5.1"
26+
versionCode = 14
27+
versionName = "0.5.2"
2828
}

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip

library/src/main/java/com/timehop/stickyheadersrecyclerview/HeaderPositionCalculator.java

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import android.support.v7.widget.LinearLayoutManager;
55
import android.support.v7.widget.RecyclerView;
66
import android.view.View;
7+
import android.view.ViewGroup;
78
import android.widget.LinearLayout;
89

910
import com.timehop.stickyheadersrecyclerview.caching.HeaderProvider;
@@ -126,16 +127,26 @@ public void initHeaderBounds(Rect bounds, RecyclerView recyclerView, View header
126127
private void initDefaultHeaderOffset(Rect headerMargins, RecyclerView recyclerView, View header, View firstView, int orientation, boolean enableStickyHeader) {
127128
int translationX, translationY;
128129
mDimensionCalculator.initMargins(mTempRect1, header);
130+
131+
ViewGroup.LayoutParams layoutParams = firstView.getLayoutParams();
132+
int leftMargin = 0;
133+
int topMargin = 0;
134+
if (layoutParams instanceof ViewGroup.MarginLayoutParams) {
135+
ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams) layoutParams;
136+
leftMargin = marginLayoutParams.leftMargin;
137+
topMargin = marginLayoutParams.topMargin;
138+
}
139+
129140
if (orientation == LinearLayoutManager.VERTICAL) {
130-
translationX = firstView.getLeft() + mTempRect1.left;
141+
translationX = firstView.getLeft() - leftMargin + mTempRect1.left;
131142
translationY = enableStickyHeader ?
132-
Math.max(firstView.getTop() - header.getHeight() - mTempRect1.bottom, getListTop(recyclerView) + mTempRect1.top) :
133-
firstView.getTop() - header.getHeight() - mTempRect1.bottom;
143+
Math.max(firstView.getTop() - topMargin - header.getHeight() - mTempRect1.bottom, getListTop(recyclerView) + mTempRect1.top) :
144+
firstView.getTop() - topMargin - header.getHeight() - mTempRect1.bottom;
134145
} else {
135-
translationY = firstView.getTop() + mTempRect1.top;
146+
translationY = firstView.getTop() - topMargin + mTempRect1.top;
136147
translationX = enableStickyHeader ?
137-
Math.max(firstView.getLeft() - header.getWidth() - mTempRect1.right, getListLeft(recyclerView) + mTempRect1.left) :
138-
firstView.getLeft() - header.getWidth() - mTempRect1.right;
148+
Math.max(firstView.getLeft() - leftMargin - header.getWidth() - mTempRect1.right, getListLeft(recyclerView) + mTempRect1.left) :
149+
firstView.getLeft() - leftMargin - header.getWidth() - mTempRect1.right;
139150
}
140151

141152
headerMargins.set(translationX, translationY, translationX + header.getWidth(),

0 commit comments

Comments
 (0)