2013-04-18 223 views
1

這是讓我瘋狂的:ListView上的默認背景項目

我有一個ListView,我想在選擇它時更改孩子的背景。列表中的項目有一個默認的背景,但是當有對項目的背景下,所選擇的項目不改變顏色......

讓我想象這一點:

當我設置背景顏色到ListView的孩子我得到這個:

listitems with background

這是一個孩子在ListView代碼:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:background="@drawable/list_selector_normal"> 

    <TextView android:id="@+id/title_view" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:paddingBottom="5dp" /> 

    <TextView android:id="@+id/description_view" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 

</LinearLayout> 

但是,當我設置一些選擇到ListView的主要佈局

android:listSelector="@drawable/list_selector" 

選中的列表項不改變顏色......

但是,當我從列表項(第5行刪除背景第一個代碼塊)的選擇做的工作,但我的背景消失:

listitems without background

的選擇XML代碼:

<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:state_pressed="true" 
      android:drawable="@drawable/list_selector_pressed" /> <!-- pressed --> 
    <item android:state_focused="true" 
      android:drawable="@drawable/list_selector_focussed" /> <!-- focused --> 
    <item android:state_hovered="true" 
      android:drawable="@color/blue" /> <!-- hovered --> 
    <item android:drawable="@color/blue" /> <!-- default --> 
</selector> 

有沒有一種方法(應該是)我可以保持我的背景(第一張圖片)並更改所選項目(第二張圖片)的顏色?

+0

入住這http://stackoverflow.com/questions/15253987/inflate-listview-row-from-onclicklistener-in-android – Pragnani

+0

它看起來像你的默認顏色是藍色的,如果你把它改成透明的:'<! - default - >'? – Sam

+0

@Sam透明無法解決它...只有當我移除LinearLayout的背景顏色時纔會有變化... –

回答

0

你可以嘗試設置的ListView XML正常的背景

<ListView 
     android:id="@android:id/list" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/list_selector_normal" 
     />