安卓listview的item点击时候的背景颜色怎么去掉或者设置成透明的呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓listview的item点击时候的背景颜色怎么去掉或者设置成透明的呢?相关的知识,希望对你有一定的参考价值。

listview默认背景和系统窗口一样是透明的,如果给listview加上背景图片,或者背景颜色时,滚动时listview会黑掉,因为滚动时,列表里面的view重绘用的依旧是系统默认的透明色,颜色值为#FF191919,解决办法:
调用listview的setCacheColorHint(0),颜色值设置为0
或者xml文件中listView的属性 android:cacheColorHint="#00000000",滚动时,重绘View的时候就不会有背景颜色。
android:listSelector="#00000000"
进行上面的设置之后,ListView点击item时就没有任何现象了

不知道你指的是不是这个问题,这是我之前遇到问题解决的办法。追问

要的就是这个答案,太感谢了!

追答

哈哈,不客气。互相学习交流吧,我也是前不久遇到的这个问题,学习了一下。

参考技术A 有listSelector,貌似这个名字,设置为透明颜色就行了追问

木有反应啊

实现android中listView的item点击变背景色

lv.setOnItemClickListener(new OnItemClickListener()
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id)
view.setBackgroundColor(Color.BLACK);


);
为什么当我点击item时,不止点击的Item背景色改变,还有另外一个Item颜色也发生改变,这个View难道不是指被我点击的view么?
运行环境是android4.4, 但4.2版本不会出现这个问题。

我的错没看清楚问题。
按题主代码自测在4.4.2上面没有出现该问题。
---------------------原答案分隔线------------------------
你这样写的代码不是最优的,一种比较好的写法是自定义Adapter,在getview方法里面自定义一个list的item的xml文件,在xml里面用自定义selector。而listview在xml里面的属性中listSelector要设置为空就是android:listSelector="@null"
参考技术A 这个变背景色最好放在Adapter的getView里面写。
点击的时候只是设置一下对应 position的item中的某个状态值。然后调用Adapter的notifyDataSetChanged方法刷新列表。
getView里面根据item的这个状态值,来显示不同的背景色。
参考技术B 这个建议在adapter里面控制,
可以先给listview设置listSelector为你点击时要显示成的颜色,然后在adapter里面再控制一下这项的颜色,
adapter里面设置一个变量来保存当前点击的position,然后在getview里面进行判断,如果点击的position跟要设置的这个view的position是同一个,则吧convertView的背景色设置成那个色,其他的设置成原来的。本回答被提问者采纳

以上是关于安卓listview的item点击时候的背景颜色怎么去掉或者设置成透明的呢?的主要内容,如果未能解决你的问题,请参考以下文章

动态改变Listview的item背景颜色和item中字体的颜色

listview 项目背景颜色更改

实现android中listView的item点击变背景色

android的ListView中如何设置长按Item的时候该Item背景变色

如何在 ListView 中正确更改特定行的背景颜色? (安卓)

Android中Listview点击item不变颜色以及设置listselector 无效