好吧,我想突出显示视图,以便用户可以看到它选择了哪个项目。我试过这样:
View.setBackground(COLOR.RED);
在项目单击侦听器上的 listView 内部,它可以工作,但是如果列表滚动,随机视图开始改变背景。如何突出显示它们并且不会丢失 listView 滚动上突出显示的项目?
注意:我正在使用一个自定义适配器,每行一个 imageView 和 3 个 textView。
谢谢
编辑:抱歉忘了说我希望能够选择多个项目。
设置项目布局的背景颜色?看这里https://github.com/cplain/custom-list概念应该是相同的 - 只是忽略我的可运行
一个快速的方法是创建几个自定义样式;在 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"
这应该可以解决问题。