2015-02-09 40 views
0

我有一個ListView,顯示選擇器的默認顏色,如下圖所示。自定義ListView選擇器未按預期顯示顏色

lwasis

我想改變這個選擇的顏色,可以說顏色水鴨。

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_*屬性沒有成功,所選擇的項目展示作爲默認顏色。我如何改變這種外觀?

回答

1

我只是在做同樣的事情。這對我有用。

設置@drawablelistview,我已經在佈局列表視圖即格式,其中你已經把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> 
+0

這適用於'state_pressed',但是當選擇該項目時應使用哪種狀態? – Marcus 2015-02-09 17:45:10