From 03823a34ffad2968890f7c0edb916b9f17ffc450 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 21 Jul 2021 21:26:00 +0200 Subject: [PATCH] Slow down fast scrolling --- .../recyclerview/widget/FastScrollerEx.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/androidx/recyclerview/widget/FastScrollerEx.java b/app/src/main/java/androidx/recyclerview/widget/FastScrollerEx.java index 5292e8d4de..0f1fd85a1c 100644 --- a/app/src/main/java/androidx/recyclerview/widget/FastScrollerEx.java +++ b/app/src/main/java/androidx/recyclerview/widget/FastScrollerEx.java @@ -464,12 +464,28 @@ public class FastScrollerEx extends RecyclerView.ItemDecoration implements Recyc int scrollbarLength = scrollbarRange[1] - scrollbarRange[0]; float percentage = (scrollbarLength == 0 ? 0 : y / (float) scrollbarLength); int pos = Math.round(count * percentage); - mRecyclerView.scrollToPosition(pos); + scrollTo = pos; + mRecyclerView.removeCallbacks(scroll); + mRecyclerView.postDelayed(scroll, 100); } mVerticalDragY = y; } + private int scrollTo; + + private final Runnable scroll = new Runnable() { + @Override + public void run() { + try { + eu.faircode.email.Log.i("Fast scroll to=" + scrollTo); + mRecyclerView.scrollToPosition(scrollTo); + } catch (Throwable ex) { + eu.faircode.email.Log.e(ex); + } + } + }; + private void horizontalScrollTo(float x) { final int[] scrollbarRange = getHorizontalRange(); x = Math.max(scrollbarRange[0], Math.min(scrollbarRange[1], x));