Причина в том, что из-за того, что AppTheme
является Theme.MaterialComponents.Light.NoActionBar
, инфлятор вашей активности раздувает MaterialButton
вместо Button
, и вы не можете изменить фон MaterialButton
аналогично старому Button
(см. документ).
Если вы хотите использовать тот же стиль, что и раньше, замените стиль MyButton
на
<style name="MyButton">
<item name="android:textColor">@color/white</item>
<item name="android:paddingLeft">@dimen/single_spacing</item>
<item name="android:paddingRight">@dimen/single_spacing</item>
<item name="backgroundTint">@color/colorPrimary</item>
<item name="cornerRadius">18dp</item>
<item name="rippleColor">?android:attr/colorControlHighlight</item>
</style>
Обратите внимание, что вы не должны расширять AppTheme
при написании стиля (который будет использоваться в атрибуте style="@style/MyStyle
) для представления.
Они ввели автоинфляцию MaterialButton
с альфа2.
Откройте класс android.support.design.theme.MaterialComponentsViewInflater
на alpha1 и alpha2, чтобы увидеть разницу.
Если вы НЕ хотите, чтобы это поведение автоматически надувало MaterialButton
, измените AppTheme
на
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar.Bridge">