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
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user