Fixing overscroll not drawn in rtl

> Using the currect right page index in rtl
> Updating current scroll after max scroll has been calculated. This prevens an extra overscroll when the layout happens for the first time.

Bug: 22358804
Change-Id: If07132701936e06f727211122a3b3e6f8426c07b
This commit is contained in:
Sunny Goyal
2015-07-08 16:41:21 -07:00
parent 987922d81e
commit cb037eee8c

View File

@@ -909,11 +909,6 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
}
}
if (mFirstLayout && mCurrentPage >= 0 && mCurrentPage < childCount) {
updateCurrentPageScroll();
mFirstLayout = false;
}
final LayoutTransition transition = getLayoutTransition();
// If the transition is running defer updating max scroll, as some empty pages could
// still be present, and a max scroll change could cause sudden jumps in scroll.
@@ -938,6 +933,11 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
updateMaxScrollX();
}
if (mFirstLayout && mCurrentPage >= 0 && mCurrentPage < childCount) {
updateCurrentPageScroll();
mFirstLayout = false;
}
if (mScroller.isFinished() && mChildCountOnLastLayout != childCount) {
if (mRestorePage != INVALID_RESTORE_PAGE) {
setCurrentPage(mRestorePage);
@@ -1173,7 +1173,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
if (!mEdgeGlowRight.isFinished()) {
final int restoreCount = canvas.save();
Rect display = mViewport;
canvas.translate(display.left + mPageScrolls[getChildCount() - 1], display.top);
canvas.translate(display.left + mPageScrolls[mIsRtl ? 0 : (getPageCount() - 1)], display.top);
canvas.rotate(90);
getEdgeVerticalPostion(sTmpIntPoint);