0

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

View.setBackground(COLOR.RED);

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

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

谢谢

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

4

2 回答 2

1

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

于 2013-01-17T03:32:20.107 回答
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"这应该可以解决问题。

于 2013-01-17T03:36:59.990 回答