Почему тема Android не распространяется на одну кнопку - PullRequest
0 голосов
/ 13 марта 2019

Я хочу стилизовать кнопку в макете, используя styles.xml, следующим образом.

styles.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>

И применение этого стиля к кнопкеusing 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.

ДОПОЛНИТЕЛЬНО: Я пробовал использовать "стиль"= "и он будет работать ЧАСТИЧНО, но он игнорирует colorButtonNormal и использует вместо него accentColor.

1 Ответ

0 голосов
/ 13 марта 2019

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

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

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

...