如何防止以黑色突出显示的ListView项目

时间:2012-02-24 20:46:36

标签: android android-layout android-listview

我一直在拼命修复这个问题,我的ListView项目突出显示。我已经回顾了我在stackoverflow上找到的任何解决方案,并且发现没有一个对我有用。

首先,这是LinearLayout中ViewPager中LinearLayout中的ListView。

该Listview中的每个项目都是包含LinearLayout(包含TextView)和Gallery的LinearLayout。图库包含多个LinearLayouts,其中包含FrameLayout中的TextView和Imageview。

出现此问题,不是在点击时,而是在拖动时,如在手指滑过故事时(有时在ListView滚动时拖动),下面的项目会被选中。此外,此特定问题仅发生在滚动效果不会导致滚动时反弹的设备上。

尝试解决问题的方法如下:

  • 将列表选择器设置为XML(失败)中的背景颜色
  • 在XML(失败)
  • 中将列表选择设置为Alpha#00000000
  • 以上但编程
  • 以上但主题
  • 将选择设置为-1 onListItemClick
  • 的代码
  • 从列表项的LinearLayout中删除背景(Works on 4.0)
  • android:cacheColorHint设为#00000000(什么都不做?)

我无法弄清楚为什么会这样做,我真的需要它停下来。

Screenshot of ListView Item being HIghlighted

1 个答案:

答案 0 :(得分:8)

这是一个最有趣的问题。解决方案更有趣。

出于某种原因,我没有尝试过,也没有人想到的是从android:background中删除LinearLayout的ListView项目。

删除android:background后,布局将继续正常显示,并且不再显示黑色。

如果您遇到类似的问题而无法解决此问题,您可能需要查看Android博客:Why is my list black?

编辑:这对ICS来说很好,但在2.1中引发了更大的问题。为了彻底解决这个问题,我最终必须在我的内联样式以及我应用于的样式定义中指定android:cacheColorHint="#000000"ListView(和LinearLayout以获得好的衡量标准) ListView