RatingBar触摸位置不正确

时间:2018-06-29 04:20:00

标签: android ratingbar

这是我的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

我该如何实现?

0 个答案:

没有答案