您的浏览器不支持CSS3,建议使用Firfox、Chrome等浏览器,以取得最佳显示效果

Android 7.0中RatingBar评星点击区域不准确的解决

Android 184℃ 0 7个月前 (04-15)

RatingBar设置max=5,StepSize=1,想输入1-5星的整数评价。在Android 7.0的一些手机中(例如华为P9),会出现评星点击区域不准确的问题。

如图,用户在点击第一个五角星正中间区域的时候,如果在红框区域,就会变成二星而不是一星;而用户想选择1星,则必须点击红框左侧区域,体验太差。

解决方法:

1、把StepSize改成比较小的值,例如0.1或0.5

  1. <RatingBar
  2. android:id="@+id/rating"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. android:max="5"
  6. android:stepSize="0.1"/>

2、代码中进行取整控制

  1. mRating.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
  2. @Override
  3. public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
  4. if (fromUser) { // 用户点击才会响应,否则会死循环
  5. int r = (int) (rating + 0.5f); // 四舍五入
  6. ratingBar.setRating(r);
  7. Toast.makeText(RatingBarActivity.this, rating + ", " + r + "", Toast.LENGTH_SHORT).show();
  8. }
  9. }
  10. });
来自为知笔记(Wiz)

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

0

暂无评论

评论前:需填写以下信息,或 登录

用户登录

忘记密码?