2010-03-05 39 views
0

我有一個自定義item_row.xml的列表視圖。我這樣定義一個選擇:Android選擇器問題

<?xml version="1.0" encoding="utf-8"?> 

<item 
    android:state_pressed="false" 
    android:drawable="@drawable/list_bg" > 
</item> 
<item 
    android:state_pressed="true" 
    android:drawable="@drawable/header_bg" > 
</item> 
<item 
    android:state_focused="false" 
    android:drawable="@drawable/list_bg" > 
</item> 
<item 
    android:state_focused="true" 
    android:drawable="@drawable/header_bg"> 
</item> 

,然後以這種方式投入item_row.xml:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="70dip" 
    android:orientation="vertical" 
    android:background="@drawable/list_selector"> 

我想要2件事:

  • 當我用箭頭鍵移動時,選中的項目改變了它的背景。它在選擇器的實際實現中工作正常。
  • 當我按下一個項目時,該項目也改變了它的背景,但它不適用於實際的選擇器。

任何想法?我嘗試設置ListView android:listSelector =「@ drawable/list_selector」 但它也不工作。

感謝

回答

1

你應該模擬您使用的Android本身ListView選擇一前一後StateListDrawable。你可以在$ANDROID_HOME/platforms/$VERSION/data/res/drawable/list_selector_background.xml找到它,其中$ANDROID_HOME是安裝Android SDK的地方,$VERSION是某些Android版本(例如,android-2.1)。然後,通過android:listSelector在佈局XML中的ListView中應用列表選擇器。

+0

現在我的選擇器工作正常,但問題是..如果我有一個item_row_list的背景,選擇器不會出現。我不能放在上面,因爲它涵蓋了該行的信息。 謝謝! – xger86x

+0

使選擇器透明或半透明,並將其放在頂部。 – CommonsWare

+0

它仍然不起作用。如果我使用 <項 機器人:state_pressed =「真」 機器人:抽拉=「@機器人:彩色/透明」> 我不能看到選擇器和它覆蓋文本太。 我想要的是: - 看到一個選擇器traslucent,當我用箭頭鍵沿列表移動時,以及當我按下一個項目時出現。 如果你能幫助我,我會非常感激 – xger86x