将Drawable设置为文本颜色会引发异常"颜色值必须以#开头"

Sag*_*Low 6 android exception drawable android-layout

layout我用一个button我设置textColor为drawable如下:

@ 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>
Run Code Online (Sandbox Code Playgroud)

@ color/main_text_color:

<color name="main_text_color">#9797A3</color>
Run Code Online (Sandbox Code Playgroud)

但是,当我使用这个drawable叫做text_color_drawabletextColor: android:textColor="@drawable/text_color_drawable"
我得到一个异常:Exception raised during rendering: Color value text_color_drawable must start with #

难道我做错了什么 ?

谢谢

MH.*_*MH. 4

问题可能是@drawble/text_color_drawable:它不应该是“可绘制的”,而应该是
“颜色”。基本上你目前拥有的是 a StateListDrawable,但你真正想要的是 a ColorStateList。两者非常相似,但位于资源的不同位置。

话虽这么说,请尝试将文件从 移动res/drawableres/color. 然后,当您将资源分配为文本颜色时,它应该显示:android:textColor="@color/text_color_drawable"