2012-09-06 59 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他可以添加一个选择? –