自定义RatingBar在api 23上显示不同数量的星星

时间:2016-06-26 20:48:07

标签: android ratingbar

在xml文件中设置RatingBar并将android:drawableProgress设置为我创建的自定义drawable(如所描述的here)它在android工作室的预览屏幕中显示5颗星,带有api 22但是当我设置api时目标到api 23它显示1星,但是ratingbar(android:width =“wrap_content”)与5星的宽度相同。这也在具有Lollipop和marshmallow OS的蜂窝电话上进行检查(与所描述的相同)。

PriceListFragment.class

When api 23 it shows 1 star When api 22 and below it shows 5 stars

2 个答案:

答案 0 :(得分:0)

可能默认的numStars值已更改。

当我在xml文件中设置它时,它工作正常。

<RatingBar
    ...
    numStars="5" />

如果wrap_content没有足够的空间来显示5颗星,那么它也可能是一个布局问题。也许你有Api 23的资格赛?如果没有,并且它在<23时工作正常,请不要介意。

答案 1 :(得分:0)

您可以使用下面的自定义样式,并在布局文件中使用该样式:

<style name="CustomRatingBar" parent="@android:style/Widget.RatingBar">

    <item name="android:progressDrawable">@drawable/rating_bar_star_style</item>
    <item name="android:minHeight">@dimen/button_height</item>
    <item name="android:maxHeight">@dimen/button_height</item>
    <item name="android:numStars">@integer/rating_bar_number_of_stars</item>
    <item name="android:stepSize">@integer/rating_bar_step</item>


</style>

并在你的布局中使用它,如下所示:

 <RatingBar
        android:id="@+id/rate_app_rating_bar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/rate_app_spacing_standard"
        style="@style/CustomRatingBar"
        android:layout_gravity="center"/>

我认为您使用的主题存在一些问题。请尝试AppTheme而不是任何其他代码,上述代码可能适合您。