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);
我已通过制作新的线性布局并将其放置在旧线性布局下方来修复它。我将评分栏添加到新的线性布局
我使用的是标准 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);
我已通过制作新的线性布局并将其放置在旧线性布局下方来修复它。我将评分栏添加到新的线性布局