diff --git a/lib/java/com/google/android/material/button/MaterialButtonHelper.java b/lib/java/com/google/android/material/button/MaterialButtonHelper.java index d2ffee3ffa3..fd5e5c304dc 100644 --- a/lib/java/com/google/android/material/button/MaterialButtonHelper.java +++ b/lib/java/com/google/android/material/button/MaterialButtonHelper.java @@ -143,6 +143,11 @@ private void updateBackground() { MaterialShapeDrawable materialShapeDrawable = getMaterialShapeDrawable(); if (materialShapeDrawable != null) { materialShapeDrawable.setElevation(elevation); + if (IS_LOLLIPOP) { + // Fix the issue that on Lollipop, when first assigned as View's background, RippleDrawable + // won't/can't propagate states to its content drawable. (It somehow works afterwards.) + materialShapeDrawable.setState(materialButton.getDrawableState()); + } } }