diff options
author | Winson Chung <winsonc@google.com> | 2015-06-22 19:48:07 -0700 |
---|---|---|
committer | Winson Chung <winsonc@google.com> | 2015-06-23 21:56:07 +0000 |
commit | 243fdd7cdf262b341b4f66177af27eec4f5cde45 (patch) | |
tree | 82e14b148aaf1f5fbcaea68589d211e72641d15c /src/com/android/launcher3/allapps/AllAppsRecyclerView.java | |
parent | 01d4ffdef43f68e0ed4e99861a637e23fda8b4fc (diff) | |
download | android_packages_apps_Trebuchet-243fdd7cdf262b341b4f66177af27eec4f5cde45.tar.gz android_packages_apps_Trebuchet-243fdd7cdf262b341b4f66177af27eec4f5cde45.tar.bz2 android_packages_apps_Trebuchet-243fdd7cdf262b341b4f66177af27eec4f5cde45.zip |
Working around overscroll issues in AllApps.
- For the time being, we are going to do custom drawing to ensure that we get the touch
events in the right order, while still allowing the recycler view to draw the overscroll
effect on top of the prediction bar.
Bug: 21335369
Change-Id: I6bf64e5c1e9aa634a953223a5decf74942e4fb57
Diffstat (limited to 'src/com/android/launcher3/allapps/AllAppsRecyclerView.java')
-rw-r--r-- | src/com/android/launcher3/allapps/AllAppsRecyclerView.java | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java index a17f0e35d..c83c6cfd9 100644 --- a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java +++ b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java @@ -16,10 +16,12 @@ package com.android.launcher3.allapps; import android.content.Context; +import android.graphics.Canvas; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.AttributeSet; +import android.view.ContextThemeWrapper; import android.view.View; import com.android.launcher3.BaseRecyclerView; import com.android.launcher3.BaseRecyclerViewFastScrollBar; @@ -70,8 +72,9 @@ public class AllAppsRecyclerView extends BaseRecyclerView public AllAppsRecyclerView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr); - mLauncher = (Launcher) context; - setOverScrollMode(View.OVER_SCROLL_NEVER); + // We have a theme on this view, so we need to coerce the base activity context from that + ContextThemeWrapper ctx = (ContextThemeWrapper) context; + mLauncher = (Launcher) ctx.getBaseContext(); } /** @@ -125,6 +128,18 @@ public class AllAppsRecyclerView extends BaseRecyclerView return 0; } + /** + * We need to override the draw to ensure that we don't draw the overscroll effect beyond the + * background bounds. + */ + @Override + protected void dispatchDraw(Canvas canvas) { + canvas.clipRect(mBackgroundPadding.left, mBackgroundPadding.top, + getWidth() - mBackgroundPadding.right, + getHeight() - mBackgroundPadding.bottom); + super.dispatchDraw(canvas); + } + @Override protected void onFinishInflate() { super.onFinishInflate(); |