From 586bc96bada5e5a7b9ca12b05b0b76278882f7ea Mon Sep 17 00:00:00 2001 From: Floens Date: Thu, 29 Mar 2018 19:23:35 +0200 Subject: [PATCH] Fix jumping of the posts sometimes Caused by requestChildRectangleOnScreen being called when the focus changed. Make that a no-op, we don't use it. Fixes #460 --- .../chan/ui/layout/ThreadListLayout.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadListLayout.java b/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadListLayout.java index bd8bfaee..c1bc9b74 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadListLayout.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadListLayout.java @@ -23,6 +23,7 @@ import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; +import android.graphics.Rect; import android.os.Handler; import android.os.Looper; import android.support.v7.widget.GridLayoutManager; @@ -182,7 +183,14 @@ public class ThreadListLayout extends FrameLayout implements ReplyLayout.ReplyLa switch (postViewMode) { case LIST: - LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext()); + LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext()) { + @Override + public boolean requestChildRectangleOnScreen( + RecyclerView parent, View child, Rect rect, boolean immediate, + boolean focusedChildVisible) { + return false; + } + }; setRecyclerViewPadding(); recyclerView.setLayoutManager(linearLayoutManager); layoutManager = linearLayoutManager; @@ -194,7 +202,15 @@ public class ThreadListLayout extends FrameLayout implements ReplyLayout.ReplyLa break; case CARD: - GridLayoutManager gridLayoutManager = new GridLayoutManager(null, spanCount, GridLayoutManager.VERTICAL, false); + GridLayoutManager gridLayoutManager = new GridLayoutManager( + null, spanCount, GridLayoutManager.VERTICAL, false) { + @Override + public boolean requestChildRectangleOnScreen( + RecyclerView parent, View child, Rect rect, boolean immediate, + boolean focusedChildVisible) { + return false; + } + }; setRecyclerViewPadding(); recyclerView.setLayoutManager(gridLayoutManager); layoutManager = gridLayoutManager;