Установка глобального цвета текста и сохранение цвета отключенной кнопки - PullRequest
0 голосов
/ 26 февраля 2019

Кажется, я не могу получить то, что хочу, независимо от того, сколько читаю по этому предмету - но все, что я хочу, довольно просто.

Я применяю глобальный стиль к своему приложению на основе AppCompat NoActionBar.Это дает белый текст, и я хочу изменить его на темный цвет.Вот мой файл styles.xml:

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorAccent">@color/colorSecondary</item>
    <item name="android:textColor">#ff4400</item>
</style>


<style name="ToolBarStyle" parent="Theme.AppCompat">
    <item name="android:textColorPrimary">@android:color/white</item>
    <item name="android:textColorSecondary">@android:color/white</item>
    <item name="actionMenuTextColor">@android:color/white</item>
    <item name="android:background">@color/colorPrimary</item>
    <item name="colorControlNormal">@android:color/white</item>
</style>

Это нормально.Цвет текста везде меняется на темный (установите красный здесь, чтобы я мог видеть, что происходит).К сожалению, это также отменяет всю окраску текста для кнопок.Отключенные кнопки показывают темный цвет, и их невозможно отличить от включенных кнопок.Я пытался применить стили к кнопкам, но textColor всегда переопределяет отключенный цвет.

Я немного растерялся, как поступить.Я не хочу применять селектор к каждой кнопке и не красить все кнопки индивидуально, устанавливая стиль для каждой из них.Мне нужно общее глобальное изменение цвета, которое Android, по-видимому, сделало исключительно трудным.

1 Ответ

0 голосов
/ 27 февраля 2019

Мне в итоге удалось заставить его работать.Я должен был использовать селектор.Я предоставляю свое решение ниже.

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorButtonNormal">@color/colorSecondary</item>
    <item name="android:textColorPrimary">@color/primary_text_color_selector</item>
    <item name="android:textColorSecondary">@color/secondary_text_color_selector</item>
    <item name="alertDialogTheme">@style/ThemeDialog</item>
</style>

<style name="ThemeDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="android:textColorPrimary">@color/primary_text_color_selector</item>
    <item name="android:background">@color/colorTertiary</item>
</style>


<style name="ToolBarStyle" parent="Theme.AppCompat">
    <item name="android:textColorPrimary">@android:color/white</item>
    <item name="android:textColorSecondary">@android:color/white</item>
    <item name="actionMenuTextColor">@android:color/white</item>
    <item name="android:background">@color/colorPrimary</item>
    <item name="colorControlNormal">@android:color/white</item>
</style>

...