Merge "Fix scroll amount calculation in ViewRootImpl" into nyc-dev am: b1e24209f1

am: 2f2af39911

* commit '2f2af39911976974177e92099e27c10fe93beddd':
  Fix scroll amount calculation in ViewRootImpl

Change-Id: I145857ecc2a07ad1b7bb80334ff81c2d990bb199
This commit is contained in:
Chong Zhang
2016-06-02 21:11:53 +00:00
committed by android-build-merger

View File

@@ -3078,16 +3078,22 @@ public final class ViewRootImpl implements ViewParent,
// best is probably just to leave things as-is. // best is probably just to leave things as-is.
if (DEBUG_INPUT_RESIZE) Log.v(mTag, if (DEBUG_INPUT_RESIZE) Log.v(mTag,
"Too tall; leaving scrollY=" + scrollY); "Too tall; leaving scrollY=" + scrollY);
} else if ((mTempRect.top-scrollY) < vi.top) { }
scrollY -= vi.top - (mTempRect.top-scrollY); // Next, check whether top or bottom is covered based on the non-scrolled
// position, and calculate new scrollY (or set it to 0).
// We can't keep using mScrollY here. For example mScrollY is non-zero
// due to IME, then IME goes away. The current value of mScrollY leaves top
// and bottom both visible, but we still need to scroll it back to 0.
else if (mTempRect.top < vi.top) {
scrollY = mTempRect.top - vi.top;
if (DEBUG_INPUT_RESIZE) Log.v(mTag, if (DEBUG_INPUT_RESIZE) Log.v(mTag,
"Top covered; scrollY=" + scrollY); "Top covered; scrollY=" + scrollY);
} else if ((mTempRect.bottom-scrollY) } else if (mTempRect.bottom > (mView.getHeight()-vi.bottom)) {
> (mView.getHeight()-vi.bottom)) { scrollY = mTempRect.bottom - (mView.getHeight()-vi.bottom);
scrollY += (mTempRect.bottom-scrollY)
- (mView.getHeight()-vi.bottom);
if (DEBUG_INPUT_RESIZE) Log.v(mTag, if (DEBUG_INPUT_RESIZE) Log.v(mTag,
"Bottom covered; scrollY=" + scrollY); "Bottom covered; scrollY=" + scrollY);
} else {
scrollY = 0;
} }
handled = true; handled = true;
} }