From 91f0daface671f1029f94e2ac8e9ea7776180d29 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 12 Jun 2019 17:45:51 +0200 Subject: [PATCH] Fixed scroll on select --- .../eu/faircode/email/FragmentMessages.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 094299a8ec..47e3f1a544 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -336,7 +336,24 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. rvMessage.setHasFixedSize(false); //rvMessage.setItemViewCacheSize(10); //rvMessage.getRecycledViewPool().setMaxRecycledViews(0, 10); - final LinearLayoutManager llm = new LinearLayoutManager(getContext()); + final LinearLayoutManager llm = new LinearLayoutManager(getContext()) { + Rect parentRect = new Rect(); + Rect childRect = new Rect(); + + @Override + public boolean requestChildRectangleOnScreen(@NonNull RecyclerView parent, @NonNull View child, @NonNull Rect rect, boolean immediate) { + return requestChildRectangleOnScreen(parent, child, rect, immediate, false); + } + + @Override + public boolean requestChildRectangleOnScreen(@NonNull RecyclerView parent, @NonNull View child, @NonNull Rect rect, boolean immediate, boolean focusedChildVisible) { + parent.getHitRect(parentRect); + child.getHitRect(childRect); + if (Rect.intersects(parentRect, childRect)) + return false; + return super.requestChildRectangleOnScreen(parent, child, rect, immediate, focusedChildVisible); + } + }; rvMessage.setLayoutManager(llm); DividerItemDecoration itemDecorator = new DividerItemDecoration(getContext(), llm.getOrientation()) {