按下时更改表格行的背景颜色

时间:2014-09-23 18:46:06

标签: android xml tablerow

我为我的TableRow布局创建了一个xml-file(drawable),如下所示:

<?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="#03114e" />
            <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>
        <shape>
            <solid
                android:color="#829fbc" />
            <stroke
                android:width="1dp"
                android:color="#17456b" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="6dp"
                android:top="6dp"
                android:right="6dp"
                android:bottom="6dp" />
        </shape>
    </item>
</selector>

当用户触摸时,它实际上应该改变TableRow的背景。不幸的是,没有任何事情发生 默认背景(在第二个item - 标记之间定义)非常有效。但是,state_pressed参数没有用处 我甚至试过state_focused,但仍然没有使用。

想法?

1 个答案:

答案 0 :(得分:1)

You can't put <shape> inside <item>。你必须使形状分开drawables并定义你的selector drawable,如下所示:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/table_row_pressed" />
    <item android:drawable="@drawable/table_row_default" />
</selector>
相关问题