ColorAccent в PreferenceScreen не работает правильно в API <= 22 - PullRequest
0 голосов
/ 05 февраля 2019

Я установил API 22 * ​​1002 * на эмуляторе и заметил, что RadioButtons и Buttons в ListPreferences и Preferences не меняются на правильный цвет, указанный в файле Styles.На API> 22 работает нормально.Эта проблема возникает только на PreferenceScreen, который используется в SettingsActivity.

Мне нужен цвет # 76B900 (зеленый)

По умолчанию Android светло-голубой цвет

RadioButton

button

Тема зарегистрирована в манифест :

        <activity
            android:name="com.Test.App.SettingsActivity"
            android:label="@string/title_activity_settings"
            android:windowSoftInputMode="adjustPan"
            android:theme="@style/PreferencesTheme"
            android:screenOrientation="portrait"/>

PreferencesTheme (styles.xml):

<style name="PreferencesTheme" parent="Theme.AppCompat">
        <item name="android:windowBackground">@color/background</item>
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:textColorPrimary">@color/primaryText</item>
        <item name="android:textColorSecondary">@color/settingsSubtext</item>
        <item name="android:colorBackground">@color/background</item>
        <item name="android:textColorPrimaryInverse">@color/primaryText</item>
    </style>

PreferencesTheme (styles.xml (v21)):

<style name="PreferencesTheme" parent="Theme.AppCompat">
        <item name="android:windowBackground">@color/background</item>
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:textColorPrimary">@color/primaryText</item>
        <item name="android:textColorSecondary">@color/settingsSubtext</item>
        <item name="android:colorBackground">@color/background</item>
        <item name="android:textColorPrimaryInverse">@color/primaryText</item>
        <item name="android:colorAccent">@color/colorAccent</item>
    </style>

Цвета (colors.xml):

    <color name="colorPrimary">#0F0F0F</color> - Black
    <color name="colorPrimaryDark">#000000</color> - Black
    <color name="colorPrimaryLight">#C8E6C9</color> - Light Green
    <color name="colorAccent">#76B900</color> - Green
    <color name="primaryText">#FFFFFF</color> - White
    <color name="secondaryText">#757575</color> - Gray
    <color name="background">#333333</color> - Dark Gray

По умолчанию в Android не задан голубой цвет в цветах или стиляхфайл.

1 Ответ

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

У меня была похожая проблема.

Добавьте это в ваш файл стилей:

<style name="AlertDialogCustom" parent="android:Theme.Material.Dialog.Alert">
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:colorAccent">@color/colorAccent</item>
</style>

Добавьте это к вашему PreferenceTheme стилю:

<item name="android:alertDialogTheme">@style/AlertDialogCustom</item>

Кнопкитеперь должен быть в правильном colorAccent цвете.

...