State_pressed更改视图的颜色

时间:2013-04-05 08:30:05

标签: android

我有这个selector xml文件,该文件作为背景元素应用于RelativeLayout

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape>
            <solid
                android:color="#449def" />
            <stroke
                android:width="1dp"
                android:color="#2f6699" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>

     <item android:state_pressed="false">
        <shape>
            <gradient
                android:startColor="#f3ae1b"
                android:endColor="#bb6008"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="#bb6008" />
            <corners
                android:radius="10dp" />
            <padding
                android:left="0dp"
                android:top="10dp"
                android:right="0dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>

我的问题是:当状态发生变化时,为什么这种布局的颜色不会改变?

1 个答案:

答案 0 :(得分:3)

你必须使布局可点击。 添加:

android:clickable="true"

到您的RelativeLayout定义