我想突出显示视图,以便用户可以看到它选择了哪个项目。我试过这样:
View.setBackground(COLOR.RED);
内部listView项目点击监听器,它工作,但如果列表滚动随机视图开始改变背景。如何突出显示它们并且不会丢失listView滚动中突出显示的项目?
注意:我正在使用一个带有一个imageView和每行3个textView的自定义适配器。
由于
编辑:抱歉忘了说我希望能够选择多个项目。答案 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"
,这应该可以解决问题。