Изменить цвет кнопки с темой

У меня проблемы с изменением цвета фона и цвета текста моих кнопок в моем приложении.

Я сделал новую тему, чтобы поиграть и попробовать. Мой манифест выглядит так:

<application
    ...
    android:theme="@style/OrangeWhite">
    <activity android:name=".MainActivity">
    ...
</application>

Моя тема.xml выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="OrangeWhite" parent="android:Theme.Light">
        <item name="android:windowBackground">@color/OrangeWhite_bg_color</item>
        <item name="android:textColor">@color/OrangeWhite_wh_text</item>
        <item name="android:colorButtonNormal">@color/OrangeWhite_bg_btn</item>
    </style>

</resources>

Изменение цвета текста или фона активности работает просто отлично. Проблема в кнопке. Нужно ли указывать на каждой кнопке использование темы OrangeWhite?...


person Community    schedule 26.07.2016    source источник
comment
Создайте другую тему и используйте ее   -  person Vinothkumar Nataraj    schedule 26.07.2016
comment
Возможно, дублируйте вопрос, см. этот   -  person FarshidABZ    schedule 26.07.2016
comment
@FarshidABZ Я сделал, как сказано в ссылке, но тогда родитель, похоже, не работал должным образом, поскольку при изменении фона кнопки также каким-то образом менялся размер, полужирный шрифт и другие вещи. Даже если у меня был android:Theme.Light в качестве родителя, как и раньше.   -  person    schedule 26.07.2016


Ответы (1)


Если вы используете тему AppCompat в качестве родительской, попробуйте код ниже

Если вам нужно изменить стиль конкретной кнопки, вы можете определить новый стиль, наследуя один из родительских стилей, описанных выше. В приведенном ниже примере я просто изменил цвет фона и шрифта:

<style name="AppTheme.Button" parent="Widget.AppCompat.Button.Colored">
<item name="colorButtonNormal">@color/Red</item>
<item name="android:colorButtonNormal">@color/Red</item>
<item name="android:textColor">@color/White</item>
</style>

Затем вам просто нужно применить этот новый стиль к кнопке с помощью:

android:theme="@style/AppTheme.Button"
person Shrenik Shah    schedule 26.07.2016
comment
@VipinSahu я отредактировал код. Попробуйте это и дайте мне знать, помогает ли это. - person Shrenik Shah; 13.03.2018