【问题标题】:Set lower limit of number of stars shown in RatingBar Android设置 RatingBar Android 中显示的星数下限
【发布时间】:2011-11-26 20:55:57
【问题描述】:

使用 android 中的 RatingBar 小部件,您可以设置要显示的星数,但是有没有办法设置始终处于活动状态的星数的下限。例如,对无法提交 1 评级的电影或其他内容进行评级?

【问题讨论】:

  • 你可以明确地设置评级为任何值,假设 2 如果低于将其绑定到 2 onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) 在这些任何值中假设 1 如果低于在代码中将其绑定到 2

标签: java android android-widget widget


【解决方案1】:

如果这在严格意义上的框架中是不可能的,您可以将默认值 1 设置为 android:rating 设置为 1,并在 RatingBar 上添加一个侦听器以在用户尝试时返回 1再低点不?

【讨论】:

  • 感谢您的回答,它可以工作我只是觉得它的代码很混乱。
  • 查看 Paresh 的答案以获得更详细的我的版本。这不是很乱。
【解决方案2】:

有没有办法设置始终处于活动状态的星星数量的下限。

是的,您可以使用setRating() 方法设置评级。 例如:

ratingBar.setRating(rat);


举个例子,你不能提交 1 分的电影或某事?

为此,您必须在 onRatingChanged() 方法中实现一个条件。 例如:

ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {

    @Override public void onRatingChanged(RatingBar ratingBar, float rating, 
      boolean fromUser) {
        // implement your condition here
    }
});

【讨论】:

    【解决方案3】:
       <RatingBar android:id="@+id/ratingbar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="5"
        android:stepSize="1.0"
        android:rating="1"/>
    

    通过设置 rating =1 显示等级 1。

    【讨论】:

      【解决方案4】:

      正如@sephy 所提到的,支持他的回答。我正在添加我在我的应用中使用过的示例代码。

      mRatingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
              @Override
              public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
                  if(selectedRating<=0) {
                      mRatingBar.setRating(1);
                  }
             }
          });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-20
        • 1970-01-01
        • 2012-09-05
        • 2015-05-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多