Почему тема Android не применяется к одной кнопке

Я хочу стилизовать кнопку в макете с помощью 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 и вместо этого использует акцентный цвет.

0
0
590
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Цветная кнопка получает цвет атрибута colorAccent из файла styles.xml. Измените цвет colorAccent на любой по вашему выбору, чтобы получить желаемый цвет фона.

colorButtonNormal применим только к кнопкам со стилями по умолчанию.

Вы можете попробовать этот отвечать.

Другие вопросы по теме