android listview项目背景

时间:2014-03-20 12:08:51

标签: android listview background

我需要在正常和选中时更改listview项目的背景。

我用过:

    <ListView
    android:id="@+id/resultLV"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"        
    android:listSelector="@drawable/list_selector"        
    android:scrollbars="none" />

list_selector.xml是:

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

 <!-- Selector style for listrow -->
 <item android:drawable="@drawable/listoff" android:state_pressed="false"   
 android:state_selected="false"/>
 <item android:drawable="@drawable/liston" android:state_pressed="true"/>
 <item android:drawable="@drawable/listoff"/>

 </selector>

问题是,当活动开始时,listview项目的背景不会更改为listoff background ..但是当我选择一个项目时,它会正确地更改为liston背景,当它被释放时它会更改为listoff background ..

所以我的问题一开始就是为什么它没有出现在listoff背景中?

由于

3 个答案:

答案 0 :(得分:1)

将选择器添加到ListView项而不是ListView本身,因为当有ListItem的可点击时,click事件首先响应Items。 :)

您可以通过在ListView项的onClick方法和ListView的onItemClick中添加日志来验证这一点,您会注意到onClick事件将被称为跳过ListView的onItemClick。

很高兴为您服务。 :)

答案 1 :(得分:0)

你的xml选择器上的问题是drawable.Instead of gradient color请把你的drawable图像。

请看看@ this drawables

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

<selector xmlns:android="http://schemas.android.com/apk/res/android" android:dither="true">

  <item android:state_pressed="true"><shape>
  <gradient android:angle="0" android:endColor="#0080FF" android:startColor="#0080FF" />        </shape></item>
    <item><shape>
      <gradient android:angle="0" android:endColor="#3B5998" android:startColor="#3B5998" />


        </shape></item>

</selector>

希望这会对你有所帮助

答案 2 :(得分:0)

尝试这个..

<!-- Tab widget design -->
<item android:drawable="@drawable/listpres" android:state_pressed="true" android:state_selected="false"></item>
<item android:drawable="@drawable/list" android:state_pressed="false" android:state_selected="false"></item>
<item android:drawable="@drawable/listpres" android:state_selected="true"></item>