And*_*oob 16 android themes styles colors textview
我在color.xml中定义了以下颜色:
<color name="gold">#d49e43</color>
<color name="gold_disabled">#80d49e43</color>
Run Code Online (Sandbox Code Playgroud)
以下主题:
<style name="Theme.Example" parent="@style/Theme.Sherlock">
<item name="android:textColor">@color/gold</item>
</style>
Run Code Online (Sandbox Code Playgroud)
在我的SettingsActivity中,我有一个CheckBoxPreference和一个取决于它的首选项.当取消选中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>
Run Code Online (Sandbox Code Playgroud)
但似乎没什么用.
W0r*_*0le 32
我知道我迟到了.但是,我有完全相同的问题,我刚刚解决了.
我找到了一种方法来仅使用资源文件来修复它.我在这里找到了答案: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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
然后,按照我的偏好风格,我做了:
水库\值\ 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>
Run Code Online (Sandbox Code Playgroud)
在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);
...
}
}
Run Code Online (Sandbox Code Playgroud)
这样,当禁用选项时,标题和摘要将显示为灰色.
我只是分享这个解决方案,因为我有同样的问题,它可能会帮助某人
我或多或少偶然发现了这一点,但如果您子类化 Preference 并重写 onBindView(),则可以在禁用首选项时实现“灰色”效果:
@Override
protected void onBindView(View view) {
// TODO Auto-generated method stub
super.onBindView(view);
TextView title = (TextView)view.findViewById(android.R.id.title);
TextView summary = (TextView)view.findViewById(android.R.id.summary);
if (title.isEnabled()) {
title.setTextColor(getContext().getResources().getColor(R.color.gold));
}
else {
title.setTextColor(getContext().getResources().getColor(R.color.gold_disabled));
}
if (summary.isEnabled()) {
summary.setTextColor(getContext().getResources().getColor(R.color.orange));
}
else {
summary.setTextColor(getContext().getResources().getColor(R.color.orange_disabled));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11842 次 |
| 最近记录: |