2012-11-29 80 views
1

我意識到在這個問題上有很多話題,我已經看過他們。但我仍然很困惑,爲什麼我的ListView背景仍然是黑色的。只有當我將背景更改爲構成我的ListView行的LinearLayout時,才能更改背景設置爲某種顏色。但是,當我將LinearLayout的背景設置爲某種顏色時,我無法查看選擇器。我已經設置了cacheColorHint =「#00000000」,android:scrollingCache =「false」,甚至嘗試了android:drawSelectorOnTop =「true」。我相信問題可能在於定義或創建我的選擇器,因爲我在測試應用程序時從未能夠在屏幕上查看我的更改。但這都是猜測,因爲我無法解決我的問題,我真的不知道什麼是錯的。您可以在下面查看我的代碼。使用自定義選擇器的ListView項目背景

我的選擇:list_background.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
<item android:state_focused="true" android:color="#80ff0000" /> <!-- focused --> 
<item android:state_focused="true" android:state_pressed="true" android:color="#80ff0000" /> <!-- focused and pressed--> 
<item android:state_pressed="true" android:color="#80ff0000" /> <!-- pressed --> 
<item android:color="#ffffffff" /> <!-- default --> 
</selector> 

我的ListView:main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="#ffffffff"> 

<!-- List view --> 
<ListView android:id="@+id/android:list" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:dividerHeight="0px" 
    android:divider="#0099CC" 
    android:listSelector="@drawable/list_background" 
    android:drawSelectorOnTop="true" 
    android:cacheColorHint="#00000000" 
    android:scrollingCache="false"/>  

</RelativeLayout> 

我的LinearLayout:image_text_layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:background="#00000000"> 

    <ImageView android:id="@+id/feed_image" 
    android:layout_width="100dip" 
    android:layout_height="100dip" 
    android:paddingTop="5dip" 
    android:paddingRight="3dip" 
    android:background="#00000000"/> 

    <TextView android:id="@+id/job_text" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="#FF4444" 
    android:paddingTop="5dip" 
    android:paddingBottom="28dip" 
    android:paddingLeft="8dip" 
    android:paddingRight="8dip" 
    android:background="#00000000"/> 
</LinearLayout> 

回答

1

可能有兩件事情。其中一種:您可能需要製作LinearLayout'android:clickable'或'android:focusable'。這是因爲默認情況下,佈局不可點擊。 Android默認的simple_list_item在哪裏。

二:我也相信在處理自定義行時,您需要將選擇器分配到自定義行(image_text_layout.xml)LinearLayout的背景而不是listview。我不太確定。

+1

我試過選項1,但似乎沒有任何效果,除了我用ListView單擊的能力被拿走了。然後我嘗試了選項二,它看起來像我有一個充氣器的問題,因爲我的代碼崩潰。我在堆棧跟蹤中找到了這個。 '11-28 21:10:06.372:E/AndroidRuntime(29647):android.view.InflateException:二進制XML文件行#2:錯誤膨脹類android.widget.LinearLayout' – bmjohns