summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/widget/HorizontalScrollView.java24
1 files changed, 9 insertions, 15 deletions
diff --git a/core/java/android/widget/HorizontalScrollView.java b/core/java/android/widget/HorizontalScrollView.java
index cf67905af3d6..ebc7eb3e3646 100644
--- a/core/java/android/widget/HorizontalScrollView.java
+++ b/core/java/android/widget/HorizontalScrollView.java
@@ -1505,11 +1505,9 @@ public class HorizontalScrollView extends FrameLayout {
final int scrollRange = Math.max(0,
childWidth - (r - l - mPaddingLeft - mPaddingRight));
if (mSavedState != null) {
- if (isLayoutRtl() == mSavedState.isLayoutRtl) {
- mScrollX = mSavedState.scrollPosition;
- } else {
- mScrollX = scrollRange - mSavedState.scrollPosition;
- }
+ mScrollX = isLayoutRtl()
+ ? scrollRange - mSavedState.scrollOffsetFromStart
+ : mSavedState.scrollOffsetFromStart;
mSavedState = null;
} else {
if (isLayoutRtl()) {
@@ -1692,8 +1690,7 @@ public class HorizontalScrollView extends FrameLayout {
}
Parcelable superState = super.onSaveInstanceState();
SavedState ss = new SavedState(superState);
- ss.scrollPosition = mScrollX;
- ss.isLayoutRtl = isLayoutRtl();
+ ss.scrollOffsetFromStart = isLayoutRtl() ? -mScrollX : mScrollX;
return ss;
}
@@ -1705,8 +1702,7 @@ public class HorizontalScrollView extends FrameLayout {
}
static class SavedState extends BaseSavedState {
- public int scrollPosition;
- public boolean isLayoutRtl;
+ public int scrollOffsetFromStart;
SavedState(Parcelable superState) {
super(superState);
@@ -1714,23 +1710,21 @@ public class HorizontalScrollView extends FrameLayout {
public SavedState(Parcel source) {
super(source);
- scrollPosition = source.readInt();
- isLayoutRtl = (source.readInt() == 0) ? true : false;
+ scrollOffsetFromStart = source.readInt();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
super.writeToParcel(dest, flags);
- dest.writeInt(scrollPosition);
- dest.writeInt(isLayoutRtl ? 1 : 0);
+ dest.writeInt(scrollOffsetFromStart);
}
@Override
public String toString() {
return "HorizontalScrollView.SavedState{"
+ Integer.toHexString(System.identityHashCode(this))
- + " scrollPosition=" + scrollPosition
- + " isLayoutRtl=" + isLayoutRtl + "}";
+ + " scrollPosition=" + scrollOffsetFromStart
+ + "}";
}
public static final Parcelable.Creator<SavedState> CREATOR