diff --git a/recyclerview-fastscroll/src/main/java/com/simplecityapps/recyclerview_fastscroll/views/FastScrollRecyclerView.java b/recyclerview-fastscroll/src/main/java/com/simplecityapps/recyclerview_fastscroll/views/FastScrollRecyclerView.java index 5dfe6f4..79a8737 100644 --- a/recyclerview-fastscroll/src/main/java/com/simplecityapps/recyclerview_fastscroll/views/FastScrollRecyclerView.java +++ b/recyclerview-fastscroll/src/main/java/com/simplecityapps/recyclerview_fastscroll/views/FastScrollRecyclerView.java @@ -36,6 +36,7 @@ import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.StaggeredGridLayoutManager; public class FastScrollRecyclerView extends RecyclerView implements RecyclerView.OnItemTouchListener { @@ -299,8 +300,12 @@ public String scrollToPositionAtProgress(float touchFraction) { scrollOffset = -(exactItemPos % mScrollPosState.rowHeight); } - LinearLayoutManager layoutManager = ((LinearLayoutManager) getLayoutManager()); - layoutManager.scrollToPositionWithOffset(scrollPosition, scrollOffset); + RecyclerView.LayoutManager layoutManager = getLayoutManager(); + if (layoutManager instanceof LinearLayoutManager) { + ((LinearLayoutManager) layoutManager).scrollToPositionWithOffset(scrollPosition, scrollOffset); + } else if (layoutManager instanceof StaggeredGridLayoutManager) { + ((StaggeredGridLayoutManager) layoutManager).scrollToPositionWithOffset(scrollPosition, scrollOffset); + } if (!(getAdapter() instanceof SectionedAdapter)) { return "";