锭床背景与状态不工作

时间:2014-12-12 14:35:54

标签: android spinner

我正在尝试为微调器设置自定义背景:

<Spinner
    android:id="@+id/spinner"
    android:layout_width="wrap_content"
    android:background="@drawable/spinner_bg"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"/>

spinner_bg.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="#ff0000"/>
    <item android:drawable="#00ff00"/>
</selector>

我看到很多教程和文章正在做这样的事情,但就我而言 不知何故不起作用,我只是没有任何状态和backgorund的纯文本,如果我设置颜色或9补丁到background一切正常。我做错了什么?

修改:我已经尝试了所有建议,但它没有帮助,Android Studio也指出出了问题,但没有提示。

Edit2 :我发现了问题。我在源代码中错过了spinner_bg文件的.xml扩展名。另外Mou有正确的修正,我应该使用drawable而不是color,所以我将他的答案标记为正确。

2 个答案:

答案 0 :(得分:0)

问题出在spinner_bg.xml中。

android:drawable 必须是对drawable的引用,而不是 color

尝试创建可绘制的形状或其他可绘制的(9路径)并在xml中正确设置。

编辑:

这样的事情:

spinner_bg_color.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid
        android:color="#FFFF0000"/>
</shape>

将此drawable设置为spinner_bg.xml中的背景drawable

答案 1 :(得分:0)

更改

android:drawable="#00ff00"

android:color="#00ff00"
像这样:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#ff0000"/>
    <item android:color"#00ff00"/>
</selector>