Listview项目的渐变在点击时不会改变

时间:2013-01-17 11:44:21

标签: java android listview gradient

我有一个listview设置使用自定义数组适配器列表显示正常我已经使用了渐变和每个项目的背景也出现但代码也声明更改渐变在下面不会发生下面是我的xml的

main.xml中

<ListView xmlns:android="http://schemas.android.com/apk/res/android"

         android:id="@+id/list"
         android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:dividerHeight="0.1dp"
    android:listSelector="@drawable/list_selector"

     />

row_list.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>


<TextView
    android:id="@+id/txtListText"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:padding="20dp"
    android:textSize="35sp"
    android:textColor="#545454"
    android:background="@drawable/ogbg" 
    />

</LinearLayout>

list_selector.xml     

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Selector style for listrow -->

<item
 android:state_selected="false"
    android:state_pressed="false"
    android:drawable="@drawable/ogbg" />

   <item android:state_pressed="true"  
        android:drawable="@drawable/ogpress" />

    <item android:state_selected="true"
       android:state_pressed="false"
        android:drawable="@drawable/ogpress" />

</selector>

ogbg.xml //正常背景渐变

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
  android:shape="rectangle">
<gradient 
android:startColor="#FFFAFAFA" 
android:centerColor="#FFFFFFFF" 
android:endColor="#FFFFFFFF" 
android:angle="90"/>
</shape>

ogpress.xml //在点击时更改渐变

<shape xmlns:android="http://schemas.android.com/apk/res/android"   

android:shape="rectangle">
<gradient 
android:startColor="#FF05c1ff" 
android:endColor="#7F05c1ff" 
android:angle="90"/>
</shape>

1 个答案:

答案 0 :(得分:0)

过去我遇到过类似的问题。尝试切换选择器项的顺序,我不知道为什么,但选择器的行为取决于项的顺序。如果这不起作用,请尝试分离“已选择”和“已按下”。为每个州做一个额外的项目。