diff options
| author | Adam Powell <adamp@google.com> | 2013-11-13 18:54:33 -0800 |
|---|---|---|
| committer | Adam Powell <adamp@google.com> | 2013-11-13 19:21:50 -0800 |
| commit | 48d2bcf2ce2305356c5a4f0dfbb928dc5a4c8331 (patch) | |
| tree | 5885364c6955d769b43993b9d3b69ee4e0255107 /core/java/android | |
| parent | 39af5a78c073d01539625a9fbbb8511747e2f048 (diff) | |
Reset padding flags when set programmatically or implicitly from background
Bug 11673480
Change-Id: I4f33c7ae46e937302e625bf1f3260adb25843645
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/view/View.java | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 99d5bbf747a3..06f8e8c3607a 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -3541,6 +3541,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, boolean startPaddingDefined = false; boolean endPaddingDefined = false; + boolean leftPaddingDefined = false; + boolean rightPaddingDefined = false; final int targetSdkVersion = context.getApplicationInfo().targetSdkVersion; @@ -3555,13 +3557,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback, padding = a.getDimensionPixelSize(attr, -1); mUserPaddingLeftInitial = padding; mUserPaddingRightInitial = padding; - mLeftPaddingDefined = true; - mRightPaddingDefined = true; + leftPaddingDefined = true; + rightPaddingDefined = true; break; case com.android.internal.R.styleable.View_paddingLeft: leftPadding = a.getDimensionPixelSize(attr, -1); mUserPaddingLeftInitial = leftPadding; - mLeftPaddingDefined = true; + leftPaddingDefined = true; break; case com.android.internal.R.styleable.View_paddingTop: topPadding = a.getDimensionPixelSize(attr, -1); @@ -3569,7 +3571,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, case com.android.internal.R.styleable.View_paddingRight: rightPadding = a.getDimensionPixelSize(attr, -1); mUserPaddingRightInitial = rightPadding; - mRightPaddingDefined = true; + rightPaddingDefined = true; break; case com.android.internal.R.styleable.View_paddingBottom: bottomPadding = a.getDimensionPixelSize(attr, -1); @@ -3872,6 +3874,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback, setBackground(background); } + // setBackground above will record that padding is currently provided by the background. + // If we have padding specified via xml, record that here instead and use it. + mLeftPaddingDefined = leftPaddingDefined; + mRightPaddingDefined = rightPaddingDefined; + if (padding >= 0) { leftPadding = padding; topPadding = padding; @@ -15361,6 +15368,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, mUserPaddingRightInitial = padding.right; internalSetPadding(padding.left, padding.top, padding.right, padding.bottom); } + mLeftPaddingDefined = false; + mRightPaddingDefined = false; } // Compare the minimum sizes of the old Drawable and the new. If there isn't an old or @@ -15457,6 +15466,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, mUserPaddingLeftInitial = left; mUserPaddingRightInitial = right; + mLeftPaddingDefined = true; + mRightPaddingDefined = true; + internalSetPadding(left, top, right, bottom); } @@ -15542,6 +15554,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, mUserPaddingStart = start; mUserPaddingEnd = end; + mLeftPaddingDefined = true; + mRightPaddingDefined = true; switch(getLayoutDirection()) { case LAYOUT_DIRECTION_RTL: |
