PreferenceScreen中的ColorAccent在API <= 22中无法正常工作

问题描述 投票:0回答:1

我在模拟器上安装了API 22,并注意到ListPreferences和Preferences中的RadioButtons和Buttons没有更改为Styles文件中声明的正确颜色。在API> 22它工作正常。此问题仅发生在SettingsActivity中使用的PreferenceScreen中。

我想要的颜色是#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浅蓝色未在颜色或样式文件中的任何位置设置。

java android xml styles android-preferences
1个回答
1
投票

我有一个类似的问题。

将其添加到样式文件中:

<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颜色。

© www.soinside.com 2019 - 2024. All rights reserved.