我在我的代码中添加了一个RatingBar,除了一件事情之外它运行良好。我试图将步长设置为0.1,但它仍然会根据默认的0.5步长做出反应。我可以很容易地设置一个高于0.5的步长,它会按预期反应但不会更低。
我无法弄清楚为什么?我唯一能想到的是,RatingBar的步长上限为0.5?对于最低限度吸引半星的评级栏来说,没有任何意义吗?
<android.support.v7.widget.AppCompatRatingBar
android:theme="@style/RatingBar"
android:stepSize="0.1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ratingbar"
android:numStars="5"
android:rating="0.1"
style="?android:attr/ratingBarStyleSmall"
android:layout_below="@+id/title"
android:layout_centerHorizontal="true" />
以上代码将显示半个星。但根据我的知识,它应该是十分之一的明星。
P.S我试图以编程方式实现它,但仍然是相同的。
答案 0 :(得分:3)
我通过将secondaryProgressTint设置为透明的#00000000来修复此问题。
secondaryProgressTint填充剩余的已开始的星星。默认情况下,每个默认颜色设置为与主要progressTint相同的颜色,因此如果您不知道,会导致很多混淆。
<android.support.v7.widget.AppCompatRatingBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ratingbar"
style="?android:attr/ratingBarStyleSmall"
android:isIndicator="true"
android:progressTint="@color/Red"
android:secondaryProgressTint="#00000000"
android:numStars="5"
android:rating="3.3"
android:stepSize="0.1"
android:layout_below="@+id/title"
android:layout_centerHorizontal="true"
/>