360ITO技术社区
  • 首页
  • 文章
  • 快讯
  • 讨论
  • 问答
  • 小贴士
  • 代码块
  • 开源
  • 老论坛
登录 | 注册

360ITO技术社区  > 快讯

订阅新闻

Android里透明的ListView

灰特浪 发布于 7年前 ( comment 0条评论  查看:3429  收藏:0 )

发现了一个list滚动时,某item背景透明的问题。网上搜索一下,发现有很多人在问list背景黑色的问题,交流中给出的解决方案基本上很统一。

先是解释问题产生的原因是Android对list的滚动做了显示优化,用写在该list的layout文件中的android:cacheColorHint颜色值与item背景混合,黑色主题下该颜色值默认为#FF191919,于是背景黑了。

解决方案是关掉优化。怎么关?有说把android:cacheColorHint设置为"@android:color/transparent",也有说把"@android:color/transparent"改为"#00000000"。

其实这个“关”,就是把那个颜色设置为透明。当然,设置成与背景相同的颜色也可以。或者设置成"@null"。

稍微努点力就能搜索到Romain Guy的一篇博客,Romain是Google的Android开发工程师,负责图形和动画相关的东西,据说ListView就是他整的。

他的这篇博客叫“Why is my list black? An Android optimization”,说的就是这个事。到底做了怎样的优化,这个现象是怎么产生的,文章里说得比较清楚了。文末也给出了解决方案,这是最权威的解答了。

但是,我所搜到的所有的讨论,和我遇到的情况还不大一样。

看上去,各种讨论里说的是似乎是整个list背景黑掉或者透明了,或者至少是除了当前选中项之外的其他所有item的背景黑掉或者透明掉。

我遇到的是,某一个item的背景透明了。出状况的item比较随机。

listview的layout文件中,android:cacheColorHint已经设置为"@android:color/transparent",改为"#00000000"依然如此。

几乎无计可施的情况下,领会Romain说的优化思路,尝试把android:cacheColorHint设置为listview的背景色。

可是,我们给listview贴图作为背景的,而android:cacheColorHint不支持设置资源。

所以,尝试给它一个接近背景色贴图颜色的不透明色值,还好,这张图不是五彩斑斓的,虽有渐进色,但还是比较难一眼辨明。

好吧,算是临时解决了。

我遇到的这个状况,在我测试过的不多的手机和平板中,只在Lenovo S890上出现。有谁知道究竟是为什么么?

来源:图灵社区


0 有用 0 无用

共有0个评论 我要评论»

按时间排 按有用数排 按支持数排

网友回复/评论仅代表其个人看法,并不表明本社区同意其观点或证实其描述。

请尽量让自己的回复能够对别人有帮助

1.不欢迎无意义的回复/评论和类似“顶”、“沙发”之类没有营养的文字
如果只是想简单的表个态,请点 有用无用支持反对 等按钮
2.发言之前请再仔细看一遍文章,或许是您遗漏、误解了,理性讨论、切莫乱喷
3.严禁发布违法、违规的信息,请勿到处招贴广告、发布软文;
4.如果您发现自己的回复/评论不见了,请参考以上3条
5.不停制造违规、垃圾信息的,账户将被禁止

热门标签

  • 谷歌 15
  • 苹果 13
  • 微软 10
  • Google 9
  • android 8
  • 可穿戴 6
  • 应用 6
  • 安全 6
  • 三星 6
  • 开发者 5
  • 阿里巴巴 4
  • 网购 4
  • 智能手机 4
  • iOS 4
  • 游戏 4
  • HTML5 4
  • 百度 3
  • 腾讯 3
  • Facebook 3
  • 谷歌眼镜 3

相关文章

周热点

月热点

Copyright ©2011-2012 360ITO技术社区 All Rights Reserved. | 关于 | 联系我们 | 杭州精创信息技术有限公司 浙ICP备09019653号-26|
▲