Android RatingBar 显示额外余数

Android RatingBar shows extra remainder

我使用的是标准 Android RatingBar。它的行为似乎很奇怪。出于某种原因,我不能 select 只有满星。它总是或多或少地显示一点。 .setNumStars 属性 似乎也不起作用。我正在使用以下代码:

RatingBar ratingbar = new RatingBar(this);
ratingbar.setLayoutParams(lp);
ratingbar.setVisibility(View.VISIBLE);
ratingbar.setNumStars(5);
ratingbar.setStepSize(1);
ratingbar.setRating(1);
linearLayoutReviews.addView(ratingbar);

当我 select 1 星时它 select 是一颗星:

当我select2星时:

当我select3星时:

当我select4星时:

而当我 select 5 星时:

所以由于某种原因它显示了超过 5 颗星,并且总会有剩余的下一颗星 selected

编辑

当我将 .setNumStars 设置为 6 时,我可以 select 它们一个接一个,当然,我有六个

编辑

这是LinearLayout

的xml
<LinearLayout
                android:id="@+id/linearLayoutReviews"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginEnd="10dp"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginStart="10dp"
                android:orientation="vertical"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/textView5"></LinearLayout>

您已多次添加 RatingBar LinearLayout 这就是它在您的 LinearLayout 中显示前一个 RatingBar 的原因。

所以首先从 LinearLayout 中删除所有当前 RatingBar,然后添加新的 RatingBar

我在你的代码中添加了一行,如下所示:它可能对你有帮助:

RatingBar ratingbar = new RatingBar(this);
ratingbar.setLayoutParams(lp);
ratingbar.setVisibility(View.VISIBLE);
ratingbar.setNumStars(5);
ratingbar.setStepSize(1);
ratingbar.setRating(1);
//In your code add the lines given below
linearLayoutReviews.removeAllViews();
linearLayoutReviews.addView(ratingbar);

我已通过制作新的线性布局并将其放置在旧线性布局下方来修复它。我将评分栏添加到新的线性布局