Android评分条在某些设备上显示黑色叠加层

9

我有一个RatingBar,它在应用程序内始终正确地显示。但最近我发现它在某些设备上(包括Lollipop版本的Nexus 5)无法正常工作。如下图所示,评分栏被黑色覆盖(仅在某些设备上)。当ListView(带有评分星级)滚动时,打分栏将被显示出来(然后黑色覆盖再次出现)。这只影响黄色的星星而不是白色的星星。

我不确定是否有人曾经遇到过这个问题?我在想是否是Nexus 5上的最近Android更新导致了这个问题,因为在其他设备上评分栏运行良好。

评分星级上的黑色覆盖


1
请提供您的XML代码。 - vishal jangid
你是否可以以某种方式着色评分星星?你正在使用支持库吗?哪个版本? - David Medenjak
当我从服务器下载信息时,我意识到可能是文件损坏了...看起来在删除数据并重新下载后它正在工作...这也可能是因为我们更改了下载链接,导致缓存数据和图像。但是我不确定那是否是主要原因,因为在那个时间点似乎没有人遇到过这个问题。 - Lee Yi Hong
我确定问题与渲染有关。也许与滚动缓存有关,因为当列表滚动时,星星在我的情况下恢复正常。 - Kayhan Asghari
1
@KeyhanAsghari 我上次也遇到了同样的问题,当它滚动回来时,它就恢复正常了。 并且仅出现在某些手机上(例如我的Nexus 5,其他手机如Sony Z1和Samsung Note 3则没有这个问题)。 也许您可以检查一下您的ListView适配器(因为当我接手这个项目时,上一个开发人员正在使用addview,所以我不得不转换为listview)? 但是对于我的情况,在我删除数据并重新下载后,该错误会自动解决。(我只是列出了可能性) - Lee Yi Hong
1个回答

3

根据我的经验,这可能是使用了支持库的v21版本或者不稳定的操作系统更新导致的,因为.xml文件和代码都不可用。

以下是谷歌上报告的关于评级栏(RatingBar)的问题,请查看下面的链接:

在设备上呈现的评级栏出现问题

开发团队已经解决了您报告的问题,并将在未来的构建版本中提供。

在Lollipop之前的手机上带有自定义星形Drawable的评级栏被渲染为1个拉伸的星星

使用支持库的v21版本时,带有自定义星形的评级栏可以正常渲染。但是使用v22时,你只会得到一个拉伸后宽度等同于5个星星的一个星星。

首先,不要使用RatingBar#setProgressDrawable,因为无论在哪个平台上,它都会像#setBackground()一样工作(整个背景单一拉伸图像)。其次,在主题级别上设置android:ratingBarStyle不起作用。我最终创建了一个自定义样式,带有"android:progressDrawable"并将其应用于我需要的每个视图。

评级栏不在信息窗口中呈现

将样式设置为android:attr/ratingBarStyle不起作用,而ratingBarStyleSmall起作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接