2012-09-06 58 views
2

我使用它選擇的名單選擇不工作

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

    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|left" 
     android:layout_marginBottom="5dp" 
     android:layout_marginLeft="5dp" 
     android:layout_marginTop="5dp" 
     android:layout_weight="1" 
     android:gravity="center_vertical" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/tvDescr" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" > 
     </TextView> 
    </LinearLayout> 

    <ImageView 
     android:id="@+id/ivImage" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:maxHeight="20dp" 
     android:minHeight="20dp" > 
    </ImageView> 

</LinearLayout> 

和選擇arrow.xml

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

    <item><shape> 
      <gradient android:angle="90.0" android:endColor="#6495ED" android:startColor="#0000FF" android:type="linear" /> 

      <corners android:radius="5.0dp" /> 
     </shape></item> 
    <item android:state_focused="true"><shape> 
      <gradient android:angle="90.0" android:endColor="#BA55D3" android:startColor="#800080" android:type="linear" /> 

      <corners android:radius="5.0dp" /> 
     </shape></item> 
    <item android:state_pressed="true"><shape> 
      <gradient android:angle="90.0" android:endColor="#BA55D3" android:startColor="#800080" android:type="linear" /> 

      <corners android:radius="5.0dp" /> 
     </shape></item> 

</selector> 

結果是

enter image description here

- 不工作,但如果我刪除(源下面)它將工作

<item><shape> 
       <gradient android:angle="90.0" android:endColor="#6495ED" android:startColor="#0000FF" android:type="linear" /> 

       <corners android:radius="5.0dp" /> 
      </shape></item> 

enter image description here

,但它並沒有給我想要的結果,因爲你點擊「列表按鈕」風格後有可能改變 - 但這種情況不會發生

我想使:

1)樣式按壓如圖片1

2)I按下按鈕後,該按鈕式必須改變爲TH之前e 2的畫面

3)保持下去,直到我點擊另一個按鈕 enter image description here

回答

1

選擇器是'狀態列表可繪製的',即它'選擇'<items>,這取決於它所應用的視圖的狀態。

甲StateListDrawable是使用 若干不同圖像來表示相同的圖形,這取決於 對象的狀態中的XML定義的可繪製的對象。例如,Button小部件可以存在於幾種不同狀態(按下,聚焦或其他狀態)的一個 中,並且使用 狀態列表可繪製,您可以爲每個狀態提供不同的背景圖像 。

下面是語法,如文檔:

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
    android:constantSize=["true" | "false"] 
    android:dither=["true" | "false"] 
    android:variablePadding=["true" | "false"] > 
    <item 
     android:drawable="@[package:]drawable/drawable_resource" 
     android:state_pressed=["true" | "false"] 
     android:state_focused=["true" | "false"] 
     android:state_hovered=["true" | "false"] 
     android:state_selected=["true" | "false"] 
     android:state_checkable=["true" | "false"] 
     android:state_checked=["true" | "false"] 
     android:state_enabled=["true" | "false"] 
     android:state_activated=["true" | "false"] 
     android:state_window_focused=["true" | "false"] /> 
</selector> 

通知的屬性,你可以在該<item>設置。

這裏是一個典型的選擇的例子..

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
> 
    <item 
     android:state_focused="true" 
     android:state_pressed="false" 
android:drawable="@drawable/list_element_focused" /> 
    <item 
     android:state_focused="true" 
     android:state_pressed="true" 
android:drawable="@drawable/list_element_focused_pressed" /> 
    <item 
     android:state_focused="false" 
     android:state_pressed="true" 
android:drawable="@drawable/list_element_pressed" /> 
    <item 
android:drawable="@drawable/list_element_unfocused" /> 
</selector> 
+0

看到編輯,我添加了一個例子。 –

+0

是的,我覺得它是可行的,你可以告訴 - 關於第3項)「保持這種方式,直到我點擊另一個按鈕」 –

+0

這是你的工作:-) 很高興我可以提供幫助。 –

1

請在您的列表視圖,而不是適用的LinearLayout您選擇。

+0

我的列表視圖是ListFragment他可以添加一個選擇? –