滚动时列表颜色变黑

我有一个列表活动,当我点击一个选项卡时填充,问题是列表颜色变成黑色,而滚动它,即使我没有设置任何属性发生这样的..任何build议,以避免这个问题? 谢谢,

Solutions Collecting From Web of "滚动时列表颜色变黑"

将此添加到xml文件中的listView

 android:cacheColorHint="#00000000" 

或者在Java代码中:

 getListView().setCacheColorHint(0); 

我build议你通过这篇文章: ListView背景:一个优化 ,这是必须阅读文章之前定制LitsView的外观。

从以上文件采取:

如前所述,默认情况下,ListView具有透明/半透明背景,所以Android UI工具包中的所有默认小部件都是默认的。 这意味着, 当ListView重绘其子项时,必须将子项与窗口的背景混合 。 再一次,这需要从内存中进行昂贵的回读,在绘图每秒钟发生十几次的时候,在滚动或者投掷时特别痛苦。

为了提高滚动操作的绘图性能,Android框架重用了caching颜色提示 。 当这个提示被设置,框架复制列表的每个孩子在填充了提示值的位图(假设另一个优化,称为滚动caching,没有closures)。 然后,ListView直接在屏幕上对这些位图进行处理,并且由于这些位图已知是不透明的,所以不需要混合。 此外,由于默认caching颜色提示是#191919,因此在滚动过程中,每个项目后面都会出现黑色背景。

要解决此问题 ,您只需要禁用caching颜色提示优化,如果您使用非纯色背景,或将提示设置为适当的纯色值。 您可以使用android:cacheColorHint属性从代码(请参阅setCacheColorHint(int) )或最好从XML中执行此操作。 要禁用优化,只需使用透明颜色#00000000 。 以下屏幕截图显示了在XML布局文件中设置的android:cacheColorHint="#00000000"的列表

你有没有为你的活动或应用程序设置一个主题?

 <item name="android:windowBackground">@null</item> 

这是一个技巧,当你有一个填充父视图的视图(通常是surfaceView)时,会加速2D绘图。 我已经看到这导致ListViews和scrollViews奇怪的背景渲染。

如果你使用空的windowbackground黑客,你可能会尝试为列表视图设置一个背景颜色,我敢打赌,滚动的问题将减less。

我知道它迟到回答这个问题,但对于其他正在面临这个问题的人:

上面的技术可能工作,但实际的事情应该做的就是添加

 android:scrollingCache="false" 

列表布局 。 喜欢这个

  <ListView android:layout_width="30dp" android:layout_height="30dp" android:id="@+id/myList" android:scrollingCache="false" /> 

你可以从这里得到这个滚动caching的原因?

谢谢