【问题标题】:how to make a ratingbar with real time update in android?如何在android中制作实时更新的评分栏?
【发布时间】:2011-09-13 19:30:03
【问题描述】:

安卓文档said

public abstract void onRatingChanged (RatingBar ratingBar, float 评分,来自用户的布尔值)

自:API 级别 1 评级已更改的通知。客户 可以使用 fromUser 参数来区分用户发起的更改 从那些以编程方式发生的。这不会被调用 在用户拖动时连续,仅当用户完成时 通过解除触摸评分。

我如何构建一个可以在用户拖动时更新的评分栏?

我还发现 ratingBar 不是很可定制。改变图像的方法是一些提到的黑客here 有没有开源的? 谢谢

【问题讨论】:

    标签: android


    【解决方案1】:

    这对我有用,我认为这是最简单的方法: 在 ratingBar 上设置一个 onTouchListener 以便在任何事件中,向下、移动和向上分级都可以广播(ratingBar.getRating() 将为您提供实时值)任何您想用它做的事情。

    【讨论】:

      【解决方案2】:

      您必须设置属性android:isIndicator=false。这将允许用户通过拖动来更改评分栏。

      【讨论】:

      • 只有在触摸结束后才会调用回调。我想要触摸结束前的值
      • 感谢它可以手动拖动评级栏。如果您不设置此属性,则某些设备不允许拖动。
      【解决方案3】:

      一个非常简单的解决方案是这样的

      ratingBar.setOnTouchListener(new View.OnTouchListener() {
      
          @Override
          public boolean onTouch(View v, MotionEvent event) {
              float rating = ratingBar.getRating();
      
              //todo: do stuff with 'rating' value
              //...
      
              return ratingBar.onTouchEvent(event);
          }
      });
      

      【讨论】:

        【解决方案4】:

        也许您应该使用 SeekBar? "SeekBar 是 ProgressBar 的扩展,添加了可拖动的拇指"

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多