我在Android Nougat(7.0)中使用RatingBar
,并使用OnRatingBarChangeListener
来检测评分的更改。
但是,在回调方法中它给出了错误的评分值。所以假设我点击第二颗星,它会给我3.0,如果我点击第四颗星,它会给我5.0。
另一件我注意到的事情是,计数取决于我点击的位置。如果我点击星星的前半部分,它返回正确的计数,如果我点击星星的后半部分,它会加上+1的计数。
活动:
RatingBar ratingBar = (RatingBar) findViewById(R.id.ratingBar2);
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
Log.i(TAG, String.format("Rating is %f : fromUser %b", rating, fromUser));
mTextView.setText(String.format("Rating is %f ", rating));
}
});
XML:
<RatingBar
android:id="@+id/ratingBar2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:isIndicator="false"
android:stepSize="1"
android:rating="5"
/>