禁用时,从属首选项显示错误的颜色字体

时间:2013-06-15 11:28:50

标签: android android-preferences android-theme android-styles

在我的应用中,我使用以下属性使用多个首选项,包括一些与依赖项相关的首选项:android:dependency="pref_key"

基本上,如果未选中此复选框,则会禁用以下所有其他首选项:

Preferences without style definition

当我在自定义主题中设置以下3行时,会出现问题:

<style name="AppThemeOrange" parent="@style/AppTheme">
        <item name="android:textColorPrimary">@color/OrangeMain</item>
        <item name="android:textColorSecondary">@color/OrangeDark</item>
        <item name="android:textColorTertiary">@color/OrangeLight</item>
(...)

这3个属性上定义的颜色也会覆盖已禁用首选项的默认字体颜色:

Preferences with style definition

首选项仍然被禁用,但显示的字体相反相反......

我搜索了默认的Holo Light样式和主题,但我不知道这个定义的位置以及为什么上面的样式会覆盖这些样式。

有没有人遇到过这个问题?

1 个答案:

答案 0 :(得分:22)

您应该定义颜色状态列表并将其放在/ res / color文件夹

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_enabled="false" android:color="#FF00ff00"/>
    <item android:color="#FFff0000"/>
</selector>