From 81be937cdb50c01ef5a871e8a8bd10ba58df3887 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1niel=20Zolnai?= Date: Mon, 3 Sep 2018 12:46:58 +0200 Subject: [PATCH] Fix on items not being removed and crash on scroll --- .../stacklayoutmanager/StackLayoutManager.kt | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/StackLayoutManager/src/main/java/com/littlemango/stacklayoutmanager/StackLayoutManager.kt b/StackLayoutManager/src/main/java/com/littlemango/stacklayoutmanager/StackLayoutManager.kt index ee6d11e..33c63af 100644 --- a/StackLayoutManager/src/main/java/com/littlemango/stacklayoutmanager/StackLayoutManager.kt +++ b/StackLayoutManager/src/main/java/com/littlemango/stacklayoutmanager/StackLayoutManager.kt @@ -264,31 +264,35 @@ class StackLayoutManager(scrollOrientation: ScrollOrientation, } override fun canScrollHorizontally(): Boolean { - return when(mScrollOrientation) { + if (itemCount == 0) { + return false + } + return when (mScrollOrientation) { ScrollOrientation.LEFT_TO_RIGHT, ScrollOrientation.RIGHT_TO_LEFT -> true else -> false } } override fun canScrollVertically(): Boolean { - return when(mScrollOrientation) { + if (itemCount == 0) { + return false + } + return when (mScrollOrientation) { ScrollOrientation.TOP_TO_BOTTOM, ScrollOrientation.BOTTOM_TO_TOP -> true else -> false } } override fun onLayoutChildren(recycler: RecyclerView.Recycler, state: RecyclerView.State) { - if (itemCount == 0) { - return - } mLayout?.requestLayout() removeAndRecycleAllViews(recycler) - mScrollOffset = getValidOffset(mScrollOffset) - - loadItemView(recycler) + if (itemCount > 0) { + mScrollOffset = getValidOffset(mScrollOffset) + loadItemView(recycler) + } } override fun scrollHorizontallyBy(dx: Int, recycler: RecyclerView.Recycler, state: RecyclerView.State): Int {