[英]RatingBar not showing correct amount of stars
当我将 numStars 设置为“5”时,我只看到 4 颗星,当我将它设置为 6 时,我看到 5 颗,但是当我在应用程序中投票给全部 5 颗星时,吐司说“6.0”作为评级,这不是什么我想要。 任何帮助都会很棒,我对此还是个新手。
我已经尝试更改 java 代码,以便它从评级中减去 1 个整数,但是当我尝试给 0 星时,吐司说 -1。 然而,当我用这种方法选择了所有 5 颗星时,我得到了 5 颗星。
<RatingBar
android:id="@+id/ratingBar"
style="@android:style/Widget.DeviceDefault.RatingBar.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="6"
android:isIndicator="false"
android:padding="@dimen/padding_standard"
android:rating="3.5"
android:stepSize="0.1"/>
ratingBar.setOnRatingBarChangeListener
(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar,
float rating, boolean fromUser) {
String myRating = (getString(R.string.my_rating) +
String.valueOf(ratingBar.getRating()));
Toast.makeText(getContext(), myRating,
Toast.LENGTH_SHORT).show();
当我有 5 个 numStars 时,我的视觉效果为 4 星,但评分仍为 5 分。我希望视觉效果与我的吐司显示的内容一致。
这种风格是问题
您定义了样式:-@android:style / Widget.DeviceDefault.RatingBar.Small
在这种样式中,尺寸是预定义的,因此只有您不能正确获得6星或更多。 因此它开始调整为5星。
因此,您必须更改样式或将android:numStars =“ 6”更改为android:numStars =“ 5”
然后,它肯定会工作。
注意:-您也可以使用以下样式:-@android:style / Widget.DeviceDefault.RatingBar
RatingBar 中的padding
是罪魁祸首,设置paddingVertical
并避免 padding 或paddingHorizontal
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.