2013-10-05 19 views
0

我有一個ListView驗證碼:的Android listSelector被應用到整體視圖,而不是項目

<ListView 
      android:id="@android:id/list" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_below="@+id/searchButton" 
      android:divider="@color/DarkGoldenrod" 
      android:dividerHeight="0.1dp" 
      android:background="@drawable/list_selector" 
      android:choiceMode="singleChoice" /> 

這是爲繪製代碼 - list_selector

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" 
    android:exitFadeDuration="@android:integer/config_shortAnimTime"> 

    <item android:drawable="@android:color/holo_green_dark" android:state_pressed="true"/> 
    <item android:drawable="@android:color/holo_blue_light" android:state_selected="true"/> 
    <item android:drawable="@android:color/holo_orange_light" android:state_activated="true"/> 

</selector> 

這個選擇是應用於整個列表視圖,我如何將它應用於單個列表項目?

謝謝。

回答

1

列表選擇器適用於整個listview爲此,如果您正在爲列表視圖行填充視圖,那麼將該樣式應用於該總視圖佈局。另外,在您的onListitemClick方法中,它會給我們一個視圖,將您的可繪製對象應用到查看view.setBackgroundResource(resid)

0

使用listSelector而不是背景

<ListView 
    android:id="@android:id/list" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@+id/searchButton" 
    android:divider="@color/DarkGoldenrod" 
    android:dividerHeight="0.1dp" 
    android:listSelector="@drawable/list_selector" 
    android:choiceMode="singleChoice" /> 
+0

這不是解決我的問題:(... – Ogen

0

我認爲你應該檢查元素的類型,當你點擊它。並在適配器中更改背景此項。

0

一個listview選擇器將被應用到整個視圖,因爲它獲得焦點..爲了將它應用到視圖的一部分,那麼在這種情況下,應用drawable在視圖內用於擴充listview的佈局。假設你有一個相對佈局和一個文本視圖,然後將drawable設置爲textview,併爲textview設置「setFocusable」true和setfocusableon爲true。

試試這個。

相關問題