我有以下评级栏:
<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"/>
当我按下星星的左侧部分时 - 它被选中,但是当我按下右侧部分时 - 下一个星星被选中。我需要选择我点击的星星,无论我点击它的哪一部分。
请帮助我了解出了什么问题。
这可能是一个不幸的副作用RatingBar
延伸ProgressBar
,它内部使用了int
进行舍入(而不是ceil
) 去从float
寻求职位int
进步。我发现的最好的解决方案是设置你的stepSize
to 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) );
}
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)