我想在listview中设置行的颜色,如果选择为黄色,否则为白色,所以我使用以下选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_enabled="true"
android:state_pressed="true" android:drawable="@color/encounter_normal" />
<item android:state_enabled="true"
android:state_focused="true" android:drawable="@color/encounter_normal" />
<item android:state_enabled="true"
android:state_selected="true" android:drawable="@color/encounterselector_color" />
<item
android:drawable="@color/encounter_normal" />
</selector>
其中
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="encounterselector_color">#fbeda5</color>
<color name="encounter_normal">#ffffff</color>
</resources>
我用它如下
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:id="@+id/EncounterGrid"
android:background="@drawable/encounterlistview"
>
<!-- remaining code -->
但行总是白色的,任何想法如何解决
答案 0 :(得分:0)
使用选择器设置背景颜色有点棘手。基本上,您必须为每种颜色创建一个drawable,并在android:drawable
属性中使用它们。你不能直接使用颜色。
检查此related question以获取更多详细信息。
答案 1 :(得分:0)
我使用以下内容:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- This is the switched off state -->
<item android:state_enabled="false"
android:drawable="@drawable/grey_bar" />
<!-- These are the partial states -->
<item android:state_pressed="true"
android:drawable="@drawable/button_pressed" />
<item android:state_focused="true" android:state_enabled="true"
android:drawable="@drawable/button_focused" />
<!-- This is the switched on state -->
<item android:state_enabled="true"
android:drawable="@drawable/button_normal" />
</selector>
我指向的所有drawable都是在xml中定义的,或者是现有的9个补丁图像。
答案 2 :(得分:0)
在您的选择器上使用android:color
而不是android:drawable
,因为您正在引用颜色资源,因此您的选择器将如下所示:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_enabled="true"
android:state_pressed="true" android:color="@color/encounter_normal" />
<item android:state_enabled="true"
android:state_focused="true" android:color="@color/encounter_normal" />
<item android:state_enabled="true"
android:state_selected="true" android:color="@color/encounterselector_color" />
<item
android:color="@color/encounter_normal" />
</selector>
答案 3 :(得分:0)
在我设置drawSelectorOnTop = "true"
之前,没有什么对我有用。
之后一切都有效。