设置 RatingBar Android 中显示的星数下限

Posted

技术标签:

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

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

【问题讨论】:

你可以明确地设置评级为任何值,假设 2 如果低于将其绑定到 2 onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) 在这些任何值中假设 1 如果低于在代码中将其绑定到 2 【参考方案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_
    android:layout_
    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);
            
       
    );

【讨论】:

以上是关于设置 RatingBar Android 中显示的星数下限的主要内容,如果未能解决你的问题,请参考以下文章

android ratingbar怎么设置半个星

android 中禁止RatingBar选择 或 改变

RatingBar设置显示星星个数

如何设置Android小RatingBar的颜色

Android RatingBar 矢量图标未显示

RatingBar的基本用法