From 07d6f7bd750655852da49ee1a3c64f7dc05cc00d Mon Sep 17 00:00:00 2001 From: Adam Powell Date: Wed, 2 Mar 2011 14:27:30 -0800 Subject: Fix bug 3502257 - overscroll effect api Change-Id: I3bf8bb653e96151c51fb94b4571a72b210615e62 --- core/java/android/widget/AbsListView.java | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'core') diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 2925632..eca39fc 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -624,6 +624,9 @@ public abstract class AbsListView extends AdapterView implements Te */ private boolean mForceTranscriptScroll; + private int mGlowPaddingLeft; + private int mGlowPaddingRight; + /** * Interface definition for a callback to be invoked when the list or grid * has been scrolled. @@ -3314,9 +3317,11 @@ public abstract class AbsListView extends AdapterView implements Te final int scrollY = mScrollY; if (!mEdgeGlowTop.isFinished()) { final int restoreCount = canvas.save(); - final int width = getWidth() - mListPadding.left - mListPadding.right; + final int leftPadding = mListPadding.left + mGlowPaddingLeft; + final int rightPadding = mListPadding.right + mGlowPaddingRight; + final int width = getWidth() - leftPadding - rightPadding; - canvas.translate(mListPadding.left, + canvas.translate(leftPadding, Math.min(0, scrollY + mFirstPositionDistanceGuess)); mEdgeGlowTop.setSize(width, getHeight()); if (mEdgeGlowTop.draw(canvas)) { @@ -3326,10 +3331,12 @@ public abstract class AbsListView extends AdapterView implements Te } if (!mEdgeGlowBottom.isFinished()) { final int restoreCount = canvas.save(); - final int width = getWidth() - mListPadding.left - mListPadding.right; + final int leftPadding = mListPadding.left + mGlowPaddingLeft; + final int rightPadding = mListPadding.right + mGlowPaddingRight; + final int width = getWidth() - leftPadding - rightPadding; final int height = getHeight(); - canvas.translate(-width + mListPadding.left, + canvas.translate(-width + leftPadding, Math.max(height, scrollY + mLastPositionDistanceGuess)); canvas.rotate(180, width, 0); mEdgeGlowBottom.setSize(width, height); @@ -3353,6 +3360,14 @@ public abstract class AbsListView extends AdapterView implements Te } } + /** + * @hide + */ + public void setOverScrollEffectPadding(int leftPadding, int rightPadding) { + mGlowPaddingLeft = leftPadding; + mGlowPaddingRight = rightPadding; + } + @Override public boolean onInterceptTouchEvent(MotionEvent ev) { int action = ev.getAction(); -- cgit v1.1