diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index 20f5f9bb60..74b0d9c93e 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -709,6 +709,7 @@ public abstract class PagedView extends ViewGrou final int scrollOffsetStart = mOrientationHandler.getScrollOffsetStart(this, mInsets); final int scrollOffsetEnd = mOrientationHandler.getScrollOffsetEnd(this, mInsets); boolean pageScrollChanged = false; + int panelCount = getPanelCount(); for (int i = startIndex, childStart = scrollOffsetStart; i != endIndex; i += delta) { final View child = getPageAt(i); @@ -726,11 +727,15 @@ public abstract class PagedView extends ViewGrou pageScrollChanged = true; outPageScrolls[i] = pageScroll; } - childStart += primaryDimension + mPageSpacing + getChildGap(); + childStart += primaryDimension + getChildGap(); + + // This makes sure that the space is added after the page, not after each panel + if (i % panelCount == panelCount - 1) { + childStart += mPageSpacing; + } } } - int panelCount = getPanelCount(); if (panelCount > 1) { for (int i = 0; i < childCount; i++) { // In case we have multiple panels, always use left panel's page scroll for all diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index a585be63a0..6c0e893ad8 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -315,9 +315,19 @@ public class Workspace extends PagedView // Increase our bottom insets so we don't overlap with the taskbar. mInsets.bottom += grid.nonOverlappingTaskbarInset; - if (grid.isTwoPanels) { - setPageSpacing(0); // we have two pages and we don't want any spacing + if (mWorkspaceFadeInAdjacentScreens) { + // In landscape mode the page spacing is set to the default. + setPageSpacing(grid.edgeMarginPx); + } else { + // In portrait, we want the pages spaced such that there is no + // overhang of the previous / next page into the current page viewport. + // We assume symmetrical padding in portrait mode. + int maxInsets = Math.max(insets.left, insets.right); + int maxPadding = Math.max(grid.edgeMarginPx, padding.left + 1); + setPageSpacing(Math.max(maxInsets, maxPadding)); + } + if (grid.isTwoPanels) { // Add left widget panel if it isn't already there if (!mWorkspaceScreens.containsKey(LEFT_PANEL_ID)) { int newCurrentPage = mCurrentPage + 1; @@ -325,18 +335,6 @@ public class Workspace extends PagedView setCurrentPage(newCurrentPage); } } else { - if (mWorkspaceFadeInAdjacentScreens) { - // In landscape mode the page spacing is set to the default. - setPageSpacing(grid.edgeMarginPx); - } else { - // In portrait, we want the pages spaced such that there is no - // overhang of the previous / next page into the current page viewport. - // We assume symmetrical padding in portrait mode. - int maxInsets = Math.max(insets.left, insets.right); - int maxPadding = Math.max(grid.edgeMarginPx, padding.left + 1); - setPageSpacing(Math.max(maxInsets, maxPadding)); - } - // Remove left widget panel if it is present if (mWorkspaceScreens.containsKey(LEFT_PANEL_ID)) { int newCurrentPage = mCurrentPage - 1;