自定义 ListView 选择器未按预期显示颜色
Custom ListView selector not showing color as expected
我有一个ListView
,显示选择器的默认颜色,如下图所示。
我想将此选择器的颜色更改为青色。
ListView.xml:
<ListView
android:drawSelectorOnTop="true"
android:listSelector="@drawable/listitem_selector"
android:choiceMode="singleChoice"
android:id="@+id/lw"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
listitem_selector.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/teal" />
<item android:state_focused="true" android:drawable="@color/teal" />
<item android:state_selected="true" android:drawable="@color/teal" />
<item android:state_active="true" android:drawable="@color/teal" />
<item android:state_activated="true" android:drawable="@color/teal" />
<item android:state_enabled="true" android:drawable="@color/teal" />
<item android:state_checked="true" android:drawable="@color/teal" />
<item android:state_single="true" android:drawable="@color/teal" />
</selector>
如您所见,我尝试了一堆 state_*
属性但没有成功,所选项目显示为默认颜色。如何更改此外观?
我也在做同样的事情。这对我有用。
我不在listview
中设置@drawable
,我已经将它设置为listview的格式,即在你放置textViews的布局中要在列表视图中显示的复选框。
list_view_format.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/list_view_item">
//your ckeckbox and textviews
</RelativeLayout>
/res/drawable/list_view_item.xml
<item android:state_pressed="true" >
<shape>
<solid android:color="@color/list_item_pressed"/>
</shape>
</item>
<item android:state_activated="true" >
<shape>
<solid android:color="@color/list_item_activated"/>
</shape>
</item>
<item>
<shape>
<solid android:color="@color/list_item_normal" />
</shape>
</item>
/res/values/colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="list_item_normal">#96ffdcb5</color>
<color name="list_item_activated">#ffaa66</color>
<color name="list_item_pressed">#ffaa66</color>
</resources>
我有一个ListView
,显示选择器的默认颜色,如下图所示。
我想将此选择器的颜色更改为青色。
ListView.xml:
<ListView
android:drawSelectorOnTop="true"
android:listSelector="@drawable/listitem_selector"
android:choiceMode="singleChoice"
android:id="@+id/lw"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
listitem_selector.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/teal" />
<item android:state_focused="true" android:drawable="@color/teal" />
<item android:state_selected="true" android:drawable="@color/teal" />
<item android:state_active="true" android:drawable="@color/teal" />
<item android:state_activated="true" android:drawable="@color/teal" />
<item android:state_enabled="true" android:drawable="@color/teal" />
<item android:state_checked="true" android:drawable="@color/teal" />
<item android:state_single="true" android:drawable="@color/teal" />
</selector>
如您所见,我尝试了一堆 state_*
属性但没有成功,所选项目显示为默认颜色。如何更改此外观?
我也在做同样的事情。这对我有用。
我不在listview
中设置@drawable
,我已经将它设置为listview的格式,即在你放置textViews的布局中要在列表视图中显示的复选框。
list_view_format.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/list_view_item">
//your ckeckbox and textviews
</RelativeLayout>
/res/drawable/list_view_item.xml
<item android:state_pressed="true" >
<shape>
<solid android:color="@color/list_item_pressed"/>
</shape>
</item>
<item android:state_activated="true" >
<shape>
<solid android:color="@color/list_item_activated"/>
</shape>
</item>
<item>
<shape>
<solid android:color="@color/list_item_normal" />
</shape>
</item>
/res/values/colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="list_item_normal">#96ffdcb5</color>
<color name="list_item_activated">#ffaa66</color>
<color name="list_item_pressed">#ffaa66</color>
</resources>