我为我的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
,但仍然没有使用。
想法?
答案 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>