选择器是否需要drawable属性?

Gar*_*ahd 11 android

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:color="#ff0000"/> 
    <item android:state_focused="true"
          android:color="#0000ff"/>
    <item android:color="#00ff00"/>
</selector>
Run Code Online (Sandbox Code Playgroud)

我有这个选择器,我试图用来改变Linearlayout的背景.每当我尝试应用它时,我总是收到此错误消息:

org.xmlpull.v1.XmlPullParserException:二进制XML文件行#4:标记需要一个'drawable'属性或定义drawable的子标记

显然,它希望我使用drawable属性,但我不知道如何做到这一点,并改变我想要的背景.

Sam*_*iya 24

android:drawable="@color/red"
Run Code Online (Sandbox Code Playgroud)

并在每个项目中添加不同的颜色....

  • 任何人都知道为什么这是必需的,当文档显示直接指定颜色应该工作?http://developer.android.com/guide/topics/resources/color-list-resource.html是否因为定位旧版SDK? (12认同)
  • @Linus,如果你指定一个颜色属性(即使用你的选择器,如`android:textColor ="@ color/..."`),使用`android:color`将起作用(并且必须包括在内).如果你指定一个drawable属性(即`android:background ="@ ..."`),它会查找`android:drawable`属性. (7认同)