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

Yoa*_*uet 11 android android-preferences android-theme android-styles

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

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

没有样式定义的首选项

当我在自定义主题中设置以下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>
(...)
Run Code Online (Sandbox Code Playgroud)

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

带样式定义的首选项

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

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

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

Bla*_*elt 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>
Run Code Online (Sandbox Code Playgroud)

  • @ user2474562你必须在res里面创建一个名为color的文件夹,然后把这段代码放在一个xml文件中.然后在主题中使用@ color/name_of_xml.例如`<item name ="android:textColorPrimary"> @ color/name_of_xml </ item> (2认同)