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
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java
index 873c068..218c1a3 100644
--- a/src/com/android/launcher3/PagedView.java
+++ b/src/com/android/launcher3/PagedView.java
@@ -909,11 +909,6 @@
}
}
- 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 @@
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 @@
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);