diff options
author | Justin Klaassen <justinklaassen@google.com> | 2017-10-10 15:20:13 -0400 |
---|---|---|
committer | Justin Klaassen <justinklaassen@google.com> | 2017-10-10 15:20:13 -0400 |
commit | 93b7ee4fce01df52a6607f0b1965cbafdfeaf1a6 (patch) | |
tree | 49f76f879a89c256a4f65b674086be50760bdffb /android/support/v17/leanback/widget/GridLayoutManager.java | |
parent | bc81c7ada5aab3806dd0b17498f5c9672c9b33c4 (diff) | |
download | android-28-93b7ee4fce01df52a6607f0b1965cbafdfeaf1a6.tar.gz |
Import Android SDK Platform P [4386628]
/google/data/ro/projects/android/fetch_artifact \
--bid 4386628 \
--target sdk_phone_armv7-win_sdk \
sdk-repo-linux-sources-4386628.zip
AndroidVersion.ApiLevel has been modified to appear as 28
Change-Id: I9b8400ac92116cae4f033d173f7a5682b26ccba9
Diffstat (limited to 'android/support/v17/leanback/widget/GridLayoutManager.java')
-rw-r--r-- | android/support/v17/leanback/widget/GridLayoutManager.java | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/android/support/v17/leanback/widget/GridLayoutManager.java b/android/support/v17/leanback/widget/GridLayoutManager.java index 8b0c4a73..81431972 100644 --- a/android/support/v17/leanback/widget/GridLayoutManager.java +++ b/android/support/v17/leanback/widget/GridLayoutManager.java @@ -2348,21 +2348,22 @@ final class GridLayoutManager extends RecyclerView.LayoutManager { // scroll in main direction may add/prune views private int scrollDirectionPrimary(int da) { if (TRACE) TraceCompat.beginSection("scrollPrimary"); - boolean isMaxUnknown = false, isMinUnknown = false; - int minScroll = 0, maxScroll = 0; - if (!mIsSlidingChildViews) { + // We apply the cap of maxScroll/minScroll to the delta, except for two cases: + // 1. when children are in sliding out mode + // 2. During onLayoutChildren(), it may compensate the remaining scroll delta, + // we should honor the request regardless if it goes over minScroll / maxScroll. + // (see b/64931938 testScrollAndRemove and testScrollAndRemoveSample1) + if (!mIsSlidingChildViews && !mInLayout) { if (da > 0) { - isMaxUnknown = mWindowAlignment.mainAxis().isMaxUnknown(); - if (!isMaxUnknown) { - maxScroll = mWindowAlignment.mainAxis().getMaxScroll(); + if (!mWindowAlignment.mainAxis().isMaxUnknown()) { + int maxScroll = mWindowAlignment.mainAxis().getMaxScroll(); if (da > maxScroll) { da = maxScroll; } } } else if (da < 0) { - isMinUnknown = mWindowAlignment.mainAxis().isMinUnknown(); - if (!isMinUnknown) { - minScroll = mWindowAlignment.mainAxis().getMinScroll(); + if (!mWindowAlignment.mainAxis().isMinUnknown()) { + int minScroll = mWindowAlignment.mainAxis().getMinScroll(); if (da < minScroll) { da = minScroll; } @@ -2856,7 +2857,8 @@ final class GridLayoutManager extends RecyclerView.LayoutManager { if (!mScrollEnabled && smooth) { return; } - if (getScrollPosition(view, childView, sTwoInts)) { + if (getScrollPosition(view, childView, sTwoInts) + || extraDelta != 0 || extraDeltaSecondary != 0) { scrollGrid(sTwoInts[0] + extraDelta, sTwoInts[1] + extraDeltaSecondary, smooth); } } |