Android ListView ListActivity PreferenceActivity背景变黑的问题

 

 

ListView在滚动时背景会变暗甚至变黑,这个要从Listview的效果说起,默认的ListItem背景是透明的,而ListView的背 景是固定不变的,所以在滚动条滚动 的过程中如果实时地去将当前每个Item的显示内容跟背景进行混合运算,所以android系统为了优化这个过程用,就使用了 android:cacheColorHint 的属性,在黑色主题下默认的颜色值是#191919,所以就出现整个View变暗的情况。

要解决这个问题只要设android:cacheColorHint=”#00000000″(透明),也可以设置成你想要的颜色。

由于ListActivity和PreferenActivity是以 ListView为ContentView 的,所以也会有变黑的现象,但是xml里没有cacheColorHint这个属性,虽然你手动加上不会报错,但是也没起任何作用。其实解决方法很简单, 就是在onCreate()方法里加上两句代码:

ListView listView = this.getListView();
listView.setCacheColorHint(Color.TRANSPARENT);