gpt4 book ai didi

Android:使用主题/样式更改禁用文本的颜色?

转载 作者:IT老高 更新时间:2023-10-28 23:30:06 27 4
gpt4 key购买 nike

我在 color.xml 中定义了以下颜色:

<color name="gold">#d49e43</color>
<color name="gold_disabled">#80d49e43</color>

还有以下主题:

<style name="Theme.Example" parent="@style/Theme.Sherlock">       
<item name="android:textColor">@color/gold</item>
</style>

在我的 SettingsActivity 中,我有一个 CheckBoxPreference 和一个依赖于它的 Preference。当 CheckBoxPreference 未选中时,Preference 被禁用,但是,由于我设置的自定义金色文本颜色,它不会像使用默认颜色那样“变灰”。如何在 XML 中更改它?我试过设置:

    <item name="android:textColorPrimaryDisableOnly">@color/gold_disabled</item>
<item name="android:textColorPrimaryInverseDisableOnly">@color/gold_disabled</item>
<item name="android:textColorPrimaryNoDisable">@color/gold_disabled</item>
<item name="android:textColorSecondaryNoDisable">@color/gold_disabled</item>
<item name="android:textColorPrimaryInverseNoDisable">@color/gold_disabled</item>
<item name="android:textColorSecondaryInverseNoDisable">@color/gold_disabled</item>

但似乎没有任何效果。

最佳答案

我知道我迟到了。但是,我遇到了完全相同的问题,我刚刚解决了。

我找到了一种仅使用资源文件来修复它的方法。我在这里找到了答案:https://stackoverflow.com/a/17123161/4860513

基本上,你可以在:res/color/下创建一个颜色选择器

注意:如果文件夹不存在,则必须创建文件夹颜色。

对我来说,我做到了:

res\color\primary_text_color_selector.xml(用于标题)

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

res\color\secondary_text_color_selector.xml(摘要)

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

然后,按照我喜欢的风格,我做了:

res\values\styles.xml

<!-- Preference Screen Theme --> 
<style name="AppTheme_PreferenceScreenStyle">
<item name="android:textColorPrimary">@color/primary_text_color_selector</item>
<item name="android:textColorSecondary">@color/secondary_text_color_selector</item>
</style>

在 SettingsFragmentActivity.java 中

public class SettingsFragmentActivity extends PreferenceFragment {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

addPreferencesFromResource(R.xml.settings);
PreferenceScreen preferenceScreen = getPreferenceScreen();

mContext = preferenceScreen.getContext();
mContext.setTheme(R.style.AppTheme_PreferenceScreenStyle);

...
}
}

以这种方式,当禁用选项时,标题和摘要是灰色的。

我只是分享这个解决方案,因为我有同样的问题,它可能对某人有所帮助

关于Android:使用主题/样式更改禁用文本的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17769198/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com