将"可绘制对象"设置为文本颜色会引发异常'Color value must start with #'



layout中,我使用了一个button,我将其textColor设置为可绘制对象,如下所示:

@drawble/text_color_drawable :

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- disabled state -->
<item android:state_enabled="false" android:color="@color/disabled_text_color" /> 
<item android:color="@color/main_text_color"/>
</selector>

@color/main_text_color :

<color name="main_text_color">#9797A3</color>

但是当我使用这个称为text_color_drawabledrawabletextColor
android:textColor="@drawable/text_color_drawable"我得到一个例外:Exception raised during rendering: Color value text_color_drawable must start with #

我做错了什么吗?

谢谢

问题可能是@drawble/text_color_drawable:它不应该是"可绘制的",而应该是一个
"颜色"。基本上你目前拥有的是StateListDrawable,但你真正想要的是ColorStateList。两者非常相似,但生活在资源的不同地方。

话虽如此,请尝试将文件从res/drawable移动到res/color。然后,将资源分配为文本颜色时,它应显示:android:textColor="@color/text_color_drawable"

就我而言,刷新按钮有所帮助。它放置在设计视图上方的小工具栏中,靠近放大镜(带有 1:1、+、-等图标)。

最新更新