diff options
| -rw-r--r-- | core/java/com/android/internal/widget/NotificationActionListLayout.java | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/core/java/com/android/internal/widget/NotificationActionListLayout.java b/core/java/com/android/internal/widget/NotificationActionListLayout.java index e013553ec046..21dcd9a62851 100644 --- a/core/java/com/android/internal/widget/NotificationActionListLayout.java +++ b/core/java/com/android/internal/widget/NotificationActionListLayout.java @@ -107,21 +107,23 @@ public class NotificationActionListLayout extends LinearLayout { } } } - if (notGoneChildren > 1 && needRebuild) { + boolean centerAligned = (mGravity & Gravity.CENTER_HORIZONTAL) != 0; + boolean singleChildCentered = notGoneChildren == 1 && centerAligned; + boolean needsRegularMeasurement = notGoneChildren > 1 || singleChildCentered; + + if (needsRegularMeasurement && needRebuild) { rebuildMeasureOrder(textViews, otherViews); } final boolean constrained = MeasureSpec.getMode(widthMeasureSpec) != MeasureSpec.UNSPECIFIED; - final boolean centerAligned = (mGravity & Gravity.CENTER_HORIZONTAL) != 0; final int innerWidth = MeasureSpec.getSize(widthMeasureSpec) - mPaddingLeft - mPaddingRight; final int otherSize = mMeasureOrderOther.size(); int usedWidth = 0; - // Optimization: Don't do this if there's only one child. int measuredChildren = 0; - for (int i = 0; i < N && notGoneChildren > 1; i++) { + for (int i = 0; i < N && needsRegularMeasurement; i++) { // Measure shortest children first. To avoid measuring twice, we approximate by looking // at the text length. View c; |