这是我的RatingBar:
<RatingBar
android:id="@+id/rbFeedback"
android:stepSize="1.0"
android:rating="5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:visibility="visible"
app:layout_constraintBottom_toTopOf="@+id/btnSubmitFeedback"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
这是我的onRatingBarChangeListener:
float ratingscore = 5.0f;
@Override protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.rating);
rbFeedback = findViewById(R.id.rbFeedback);
rbFeedback.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener(){
@Override public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser){
ratingscore = rating;
}
});
}
当我单击三颗星的中间(2.50)和四颗星的中间(3.49)之间的任意位置时,它将选择4/5星。 为什么点击第三颗星的中间会给出四颗星?
因此,如果我单击第三颗星的中间,它将选择4/5颗星。
这些是每个范围给我的结果:
click 0.00 to 0.49 = 1 stars
click 0.50 to 1.49 = 2 stars
click 1.50 to 2.49 = 3 stars
click 2.50 to 3.49 = 4 stars
click 3.50 to 5.00 = 5 stars
这似乎是默认行为,而不是错误,但是我不希望这种行为。
我想要这个范围:
click 0.00 to 0.99 = 1 stars
click 1.00 to 1.99 = 2 stars
click 2.00 to 2.99 = 3 stars
click 3.00 to 3.99 = 4 stars
click 4.00 to 4.99 = 5 stars
我该如何实现?