diff --git a/core/java/com/android/internal/widget/NotificationActionListLayout.java b/core/java/com/android/internal/widget/NotificationActionListLayout.java index 0482f6cf596ac..5729b53e98d7a 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;