Android RatingBar(填充下一个明星)

时间:2015-11-19 08:20:45

标签: android ratingbar

我有以下RatingBar:

<RatingBar
                android:id="@+id/ratingBar"
                android:layout_width="wrap_content"
                android:layout_height="35dp"
                android:numStars="5"
                android:max="5"
                android:stepSize="1.0"
                android:layout_marginTop="12dp"/>

当我按下星形的左侧部分时 - 它被选中,但是当我按下右侧部分时 - 选择了以下星形。我需要点击的星星被选中,无论我点击哪一部分。 请帮助我理解错误。

1 个答案:

答案 0 :(得分:13)

这可能是RatingBar扩展ProgressBar的一个令人遗憾的副作用,int内部使用ceil进度舍入(而不是float)来自{int 1}}寻找stepSize进度的位置。我找到的最佳解决方案是将您的0.01设置为1而不是rb.setOnRatingBarChangeListener( new RatingBar.OnRatingBarChangeListener() { @Override public void onRatingChanged( final RatingBar ratingBar, final float rating, final boolean fromUser ) { if ( fromUser ) { ratingBar.setRating( Math.ceil(rating) ); } } }); ,然后设置

while