如何在点击时突出显示ListView多个视图?

时间:2013-01-17 03:17:56

标签: android listview view

我想突出显示视图,以便用户可以看到它选择了哪个项目。我试过这样:

View.setBackground(COLOR.RED);

内部listView项目点击监听器,它工作,但如果列表滚动随机视图开始改变背景。如何突出显示它们并且不会丢失listView滚动中突出显示的项目?

注意:我正在使用一个带有一个imageView和每行3个textView的自定义适配器。

由于

编辑:抱歉忘了说我希望能够选择多个项目。

2 个答案:

答案 0 :(得分:1)

设置项目布局的背景颜色?看这里https://github.com/cplain/custom-list概念应该是相同的 - 只要忽略我的runnable

答案 1 :(得分:1)

快速执行此操作的方法是创建一些自定义样式;在drawable文件夹中,您可以为正常和悬停或按下状态创建样式:

所以在../drawable/你想要制作几个元素:

1)list_bg.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
  <gradient
      android:startColor="#db0000"
      android:centerColor="#c50300"
      android:endColor="#b30500"
      android:angle="270" />
</shape>

2)list_bg_hover.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
  <gradient
      android:startColor="#db0000"
      android:centerColor="#c50300"
      android:endColor="#b30500"
      android:angle="270" />
</shape>

3)list_selector.xml文件:

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

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

</selector>

现在,为了使用这一点,您只需将样式附加到ListView行项目的布局,就像这样android:listSelector="@drawable/list_selector",这应该可以解决问题。