From 9e4c359054dbc774e38179887519079bc4c4b25b Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Wed, 7 Jun 2017 14:05:08 -0700 Subject: [PATCH] Adding utility method to temporarily hide scrollbar Bug: 37616877 Change-Id: I286493746c44ace8958ffd8df24317125b445cf7 --- src/com/android/launcher3/BaseRecyclerView.java | 16 ++++++++++++++-- .../launcher3/allapps/AllAppsRecyclerView.java | 4 ++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/com/android/launcher3/BaseRecyclerView.java b/src/com/android/launcher3/BaseRecyclerView.java index 1e6d894850..514cc07511 100644 --- a/src/com/android/launcher3/BaseRecyclerView.java +++ b/src/com/android/launcher3/BaseRecyclerView.java @@ -48,6 +48,8 @@ public abstract class BaseRecyclerView extends RecyclerView private int mDownY; private int mLastY; + private boolean mScrollBarVisible = true; + public BaseRecyclerView(Context context) { this(context, null); } @@ -199,8 +201,18 @@ public abstract class BaseRecyclerView extends RecyclerView @Override protected void dispatchDraw(Canvas canvas) { super.dispatchDraw(canvas); - onUpdateScrollbar(0); - mScrollbar.draw(canvas); + if (mScrollBarVisible) { + onUpdateScrollbar(0); + mScrollbar.draw(canvas); + } + } + + /** + * Sets the scrollbar visibility. The call does not refresh the UI, its the responsibility + * of the caller to call {@link #invalidate()}. + */ + public void setScrollBarVisible(boolean visible) { + mScrollBarVisible = visible; } /** diff --git a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java index d76abccd3b..b2a74ff157 100644 --- a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java +++ b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java @@ -97,6 +97,10 @@ public class AllAppsRecyclerView extends BaseRecyclerView { mFastScrollHelper = new AllAppsFastScrollHelper(this, apps); } + public AlphabeticalAppsList getApps() { + return mApps; + } + /** * Sets the number of apps per row in this recycler view. */