am 21990922
: Merge "Fix AbsListView scrolling behavior at edges." into froyo
Merge commit '219909224d9f5fdb4fe1c97fad048894c4619fe7' into froyo-plus-aosp * commit '219909224d9f5fdb4fe1c97fad048894c4619fe7': Fix AbsListView scrolling behavior at edges.
This commit is contained in:
@ -2059,12 +2059,6 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
|
||||
deltaY -= mMotionCorrection;
|
||||
int incrementalDeltaY = mLastY != Integer.MIN_VALUE ? y - mLastY : deltaY;
|
||||
|
||||
int motionViewPrevTop = 0;
|
||||
View motionView = this.getChildAt(mMotionPosition - mFirstPosition);
|
||||
if (motionView != null) {
|
||||
motionViewPrevTop = motionView.getTop();
|
||||
}
|
||||
|
||||
// No need to do all this work if we're not going to move anyway
|
||||
boolean atEdge = false;
|
||||
if (incrementalDeltaY != 0) {
|
||||
@ -2072,14 +2066,19 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
|
||||
}
|
||||
|
||||
// Check to see if we have bumped into the scroll limit
|
||||
motionView = this.getChildAt(mMotionPosition - mFirstPosition);
|
||||
if (motionView != null) {
|
||||
// Check if the top of the motion view is where it is
|
||||
// supposed to be
|
||||
final int motionViewRealTop = motionView.getTop();
|
||||
if (atEdge) {
|
||||
invalidate();
|
||||
if (atEdge && getChildCount() > 0) {
|
||||
// Treat this like we're starting a new scroll from the current
|
||||
// position. This will let the user start scrolling back into
|
||||
// content immediately rather than needing to scroll back to the
|
||||
// point where they hit the limit first.
|
||||
int motionPosition = findMotionRow(y);
|
||||
if (motionPosition >= 0) {
|
||||
final View motionView = getChildAt(motionPosition - mFirstPosition);
|
||||
mMotionViewOriginalTop = motionView.getTop();
|
||||
}
|
||||
mMotionY = y;
|
||||
mMotionPosition = motionPosition;
|
||||
invalidate();
|
||||
}
|
||||
mLastY = y;
|
||||
}
|
||||
|
Reference in New Issue
Block a user