【发布时间】:2016-06-08 14:03:39
【问题描述】:
在评分栏中填充颜色以进行十进制评分对于低于 23 的 API 可以正常工作,而在 API 23 中则无法正常工作。
代码如下:
RatingBar ratingBar = (RatingBar) view.findViewById(R.id.ratingbar);
ratingBar.setNumStars(5);
ratingBar.setMax(5);
ratingBar.setStepSize(0.1f);
ratingBar.setRating(0.5);
Drawable ratingBarColor = ratingBar.getProgressDrawable();
DrawableCompat.setTint(ratingBarColor, ContextCompat.getColor(getActivity(), R.color.red));
这将用红色填充 0.5(half) 星的颜色。 但是对于 android API 23(MarshMallow),无论你设置什么评级,它都会填满所有星星。我能知道导致这个问题的 API 23 发生了什么变化吗?或者让我知道这段代码的问题。
用于测试的手机 (6.0):HTC One M8、Moto X Play、Nexus 6。 5.1.1:Moto X(第一代)、Nexus 4、Moto G1、G2
编辑:我通过删除 API23 中的 setTint 进行了测试,该 API23 设置了带有十进制评级的白色。因此,DrawableCompat 设置十进制评级星的颜色可能会出现问题。
【问题讨论】:
-
尝试过给予风格? style="?android:attr/ratingBarStyle"??
-
@Viren 我正在以编程方式设置自定义评分栏。
-
我没听懂你。您正在创建自定义样式???我告诉你在你放置评级栏的 xml 中声明它。
-
@Viren 谢谢。有什么不同吗?。
-
希望如此。请放一次。