diff --git a/app/src/main/java/androidx/recyclerview/widget/FastScrollerEx.java b/app/src/main/java/androidx/recyclerview/widget/FastScrollerEx.java index 88154e29be..4bcda2358e 100644 --- a/app/src/main/java/androidx/recyclerview/widget/FastScrollerEx.java +++ b/app/src/main/java/androidx/recyclerview/widget/FastScrollerEx.java @@ -449,12 +449,14 @@ public class FastScrollerEx extends RecyclerView.ItemDecoration implements Recyc if (Math.abs(mVerticalThumbCenterY - y) < 2) { return; } - int scrollingBy = scrollTo(mVerticalDragY, y, scrollbarRange, - mRecyclerView.computeVerticalScrollRange(), - mRecyclerView.computeVerticalScrollOffset(), mRecyclerViewHeight); - if (scrollingBy != 0) { - mRecyclerView.scrollBy(0, scrollingBy); - } + + int scrollbarLength = scrollbarRange[1] - scrollbarRange[0]; + float percentage = (scrollbarLength == 0 ? 0 : y / (float) scrollbarLength); + androidx.recyclerview.widget.RecyclerView.Adapter adapter = mRecyclerView.getAdapter(); + int count = (adapter == null ? 0 : adapter.getItemCount()); + int pos = Math.round(count * percentage); + mRecyclerView.scrollToPosition(pos); + mVerticalDragY = y; }