diff --git a/lib/java/com/google/android/material/snackbar/BaseTransientBottomBar.java b/lib/java/com/google/android/material/snackbar/BaseTransientBottomBar.java index 97e230e1917..449a3fc3b0a 100644 --- a/lib/java/com/google/android/material/snackbar/BaseTransientBottomBar.java +++ b/lib/java/com/google/android/material/snackbar/BaseTransientBottomBar.java @@ -376,7 +376,6 @@ protected BaseTransientBottomBar( ((SnackbarContentLayout) content) .updateActionTextColorAlphaIfNeeded(view.getActionTextColorAlpha()); ((SnackbarContentLayout) content).setMaxInlineActionWidth(view.getMaxInlineActionWidth()); - ((SnackbarContentLayout) content).setMaxWidth(view.getMaxWidth()); } view.addView(content); @@ -1222,6 +1221,15 @@ public void setOnClickListener(@Nullable OnClickListener onClickListener) { super.setOnClickListener(onClickListener); } + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + if (maxWidth > 0 && getMeasuredWidth() > maxWidth) { + widthMeasureSpec = MeasureSpec.makeMeasureSpec(maxWidth, MeasureSpec.EXACTLY); + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } + } + @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); diff --git a/lib/java/com/google/android/material/snackbar/SnackbarContentLayout.java b/lib/java/com/google/android/material/snackbar/SnackbarContentLayout.java index f52b283ba32..fcbc4b08050 100644 --- a/lib/java/com/google/android/material/snackbar/SnackbarContentLayout.java +++ b/lib/java/com/google/android/material/snackbar/SnackbarContentLayout.java @@ -37,7 +37,6 @@ public class SnackbarContentLayout extends LinearLayout implements ContentViewCa private TextView messageView; private Button actionView; - private int maxWidth; private int maxInlineActionWidth; public SnackbarContentLayout(@NonNull Context context) { @@ -77,11 +76,6 @@ void updateActionTextColorAlphaIfNeeded(float actionTextColorAlpha) { protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); - if (maxWidth > 0 && getMeasuredWidth() > maxWidth) { - widthMeasureSpec = MeasureSpec.makeMeasureSpec(maxWidth, MeasureSpec.EXACTLY); - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - } - final int multiLineVPadding = getResources().getDimensionPixelSize(R.dimen.design_snackbar_padding_vertical_2lines); final int singleLineVPadding = @@ -162,8 +156,4 @@ public void animateContentOut(int delay, int duration) { public void setMaxInlineActionWidth(int width) { maxInlineActionWidth = width; } - - void setMaxWidth(int width) { - maxWidth = width; - } }