RatingBar设置max=5,StepSize=1,想输入1-5星的整数评价。在Android 7.0的一些手机中(例如华为P9),会出现评星点击区域不准确的问题。
如图,用户在点击第一个五角星正中间区域的时候,如果在红框区域,就会变成二星而不是一星;而用户想选择1星,则必须点击红框左侧区域,体验太差。
解决方法:
1、把StepSize改成比较小的值,例如0.1或0.5
1 2 3 4 5 6
| <RatingBar android:id="@+id/rating" android:layout_width="wrap_content" android:layout_height="wrap_content" android:max="5" android:stepSize="0.1"/>
|
2、代码中进行取整控制
1 2 3 4 5 6 7 8 9 10
| mRating.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { @Override public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { if (fromUser) { int r = (int) (rating + 0.5f); ratingBar.setRating(r); Toast.makeText(RatingBarActivity.this, rating + ", " + r + "", Toast.LENGTH_SHORT).show(); } } });
|