Reset padding flags when set programmatically or implicitly from background
Bug 11673480 Change-Id: I4f33c7ae46e937302e625bf1f3260adb25843645
This commit is contained in:
@@ -3541,6 +3541,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
|
|||||||
|
|
||||||
boolean startPaddingDefined = false;
|
boolean startPaddingDefined = false;
|
||||||
boolean endPaddingDefined = false;
|
boolean endPaddingDefined = false;
|
||||||
|
boolean leftPaddingDefined = false;
|
||||||
|
boolean rightPaddingDefined = false;
|
||||||
|
|
||||||
final int targetSdkVersion = context.getApplicationInfo().targetSdkVersion;
|
final int targetSdkVersion = context.getApplicationInfo().targetSdkVersion;
|
||||||
|
|
||||||
@@ -3555,13 +3557,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
|
|||||||
padding = a.getDimensionPixelSize(attr, -1);
|
padding = a.getDimensionPixelSize(attr, -1);
|
||||||
mUserPaddingLeftInitial = padding;
|
mUserPaddingLeftInitial = padding;
|
||||||
mUserPaddingRightInitial = padding;
|
mUserPaddingRightInitial = padding;
|
||||||
mLeftPaddingDefined = true;
|
leftPaddingDefined = true;
|
||||||
mRightPaddingDefined = true;
|
rightPaddingDefined = true;
|
||||||
break;
|
break;
|
||||||
case com.android.internal.R.styleable.View_paddingLeft:
|
case com.android.internal.R.styleable.View_paddingLeft:
|
||||||
leftPadding = a.getDimensionPixelSize(attr, -1);
|
leftPadding = a.getDimensionPixelSize(attr, -1);
|
||||||
mUserPaddingLeftInitial = leftPadding;
|
mUserPaddingLeftInitial = leftPadding;
|
||||||
mLeftPaddingDefined = true;
|
leftPaddingDefined = true;
|
||||||
break;
|
break;
|
||||||
case com.android.internal.R.styleable.View_paddingTop:
|
case com.android.internal.R.styleable.View_paddingTop:
|
||||||
topPadding = a.getDimensionPixelSize(attr, -1);
|
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:
|
case com.android.internal.R.styleable.View_paddingRight:
|
||||||
rightPadding = a.getDimensionPixelSize(attr, -1);
|
rightPadding = a.getDimensionPixelSize(attr, -1);
|
||||||
mUserPaddingRightInitial = rightPadding;
|
mUserPaddingRightInitial = rightPadding;
|
||||||
mRightPaddingDefined = true;
|
rightPaddingDefined = true;
|
||||||
break;
|
break;
|
||||||
case com.android.internal.R.styleable.View_paddingBottom:
|
case com.android.internal.R.styleable.View_paddingBottom:
|
||||||
bottomPadding = a.getDimensionPixelSize(attr, -1);
|
bottomPadding = a.getDimensionPixelSize(attr, -1);
|
||||||
@@ -3872,6 +3874,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
|
|||||||
setBackground(background);
|
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) {
|
if (padding >= 0) {
|
||||||
leftPadding = padding;
|
leftPadding = padding;
|
||||||
topPadding = padding;
|
topPadding = padding;
|
||||||
@@ -15361,6 +15368,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
|
|||||||
mUserPaddingRightInitial = padding.right;
|
mUserPaddingRightInitial = padding.right;
|
||||||
internalSetPadding(padding.left, padding.top, padding.right, padding.bottom);
|
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
|
// 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;
|
mUserPaddingLeftInitial = left;
|
||||||
mUserPaddingRightInitial = right;
|
mUserPaddingRightInitial = right;
|
||||||
|
|
||||||
|
mLeftPaddingDefined = true;
|
||||||
|
mRightPaddingDefined = true;
|
||||||
|
|
||||||
internalSetPadding(left, top, right, bottom);
|
internalSetPadding(left, top, right, bottom);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -15542,6 +15554,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
|
|||||||
|
|
||||||
mUserPaddingStart = start;
|
mUserPaddingStart = start;
|
||||||
mUserPaddingEnd = end;
|
mUserPaddingEnd = end;
|
||||||
|
mLeftPaddingDefined = true;
|
||||||
|
mRightPaddingDefined = true;
|
||||||
|
|
||||||
switch(getLayoutDirection()) {
|
switch(getLayoutDirection()) {
|
||||||
case LAYOUT_DIRECTION_RTL:
|
case LAYOUT_DIRECTION_RTL:
|
||||||
|
|||||||
Reference in New Issue
Block a user