我需要在正常和选中时更改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背景中?
由于
答案 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>