Я хочу стилизовать кнопку в макете с помощью styles.xml следующим образом.
стили.xml
<resources>
<!-- Base application theme. -->
<style name = "AppTheme" parent = "Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name = "colorPrimary">@color/colorPrimary</item>
<item name = "colorPrimaryDark">@color/colorPrimaryDark</item>
<item name = "colorAccent">@color/colorAccent</item>
</style>
<style name = "SearchButton" parent = "Widget.AppCompat.Button.Colored">
<item name = "android:textColor">@color/white</item>
<item name = "android:textSize">15sp</item>
<item name = "colorButtonNormal">@color/colorPrimary</item>
</style>
И применить этот стиль к кнопке с помощью android:theme.
<Button
android:theme = "@style/SearchButton"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:layout_alignParentBottom = "true"
android:layout_margin = "15dp"
android:text = "@string/search_button_text" />
В окне предварительного просмотра этот код не изменяет стандартную серую кнопку Material Design.
ДОПОЛНИТЕЛЬНО: я пытался использовать "style=", и это будет работать ЧАСТИЧНО, но игнорирует colorButtonNormal и вместо этого использует акцентный цвет.
Цветная кнопка получает цвет атрибута colorAccent из файла styles.xml. Измените цвет colorAccent на любой по вашему выбору, чтобы получить желаемый цвет фона.
colorButtonNormal применим только к кнопкам со стилями по умолчанию.
Вы можете попробовать этот отвечать.