Skip to content

Commit a6382d8

Browse files
committed
fix end detection in grid LayoutManager
1 parent 70b7783 commit a6382d8

File tree

1 file changed

+2
-6
lines changed

1 file changed

+2
-6
lines changed

app/src/main/java/me/hamedsj/gridchallenge/utils/HamidGridLayoutManager.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import androidx.core.view.setMargins
55
import androidx.recyclerview.widget.RecyclerView
66
import androidx.recyclerview.widget.RecyclerView.Recycler
77
import java.lang.Integer.max
8+
import java.lang.Integer.min
89

910
class HamidGridLayoutManager: RecyclerView.LayoutManager() {
1011

@@ -37,12 +38,7 @@ class HamidGridLayoutManager: RecyclerView.LayoutManager() {
3738
getDecoratedBottom(lastItem) + (lastItem.layoutParams as MarginLayoutParams).bottomMargin
3839
} ?: 0
3940

40-
if (dy > 0 && lastItemEnd <= height) {
41-
verticalScrollOffset = max(verticalScrollOffset + (lastItemEnd - height), 0)
42-
fill(recycler = recycler)
43-
return verticalScrollOffset - lastScrollOffset
44-
}
45-
verticalScrollOffset = max(verticalScrollOffset + dy, 0)
41+
verticalScrollOffset = min(max(verticalScrollOffset + dy, 0), verticalScrollOffset + (lastItemEnd - height))
4642
fill(recycler = recycler)
4743
return verticalScrollOffset - lastScrollOffset
4844
}

0 commit comments

Comments
 (0)