繁体   English   中英

如何将评级栏设置为最低一颗星?

[英]How to set rating bar to minimum one star?

我有一个要求给一个用户评分最少一颗星,然后评分应该增加到 0.5。 但我的问题是,用户不应将星级的最低评分更改为 0.5 或 0。默认评分应为 1。 请帮助解决这个问题并等待您的早期回复。 我也尝试通过链接中的侦听器实现,但完全使用我的代码中的逻辑进行构造:

ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {

    @Override public void onRatingChanged(RatingBar ratingBar, float rating, 
      boolean fromUser) {

    }
});
 ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {

@Override public void onRatingChanged(RatingBar ratingBar, float rating, 
  boolean fromUser) {
     if(rating<1.0f)
          ratingBar.setRating(1.0f);
}
});

如果ur的值为String,则设置Rating为float值:

ratingBar.setRating(Float.parseFloat(result));
      ratingbar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {

        @Override
        public void onRatingChanged(RatingBar ratingBar, float rating,
                boolean fromUser) {

                  ratingBar.setRating(Float.parseFloat(""+Math.ceil(rating)));
                }
 }
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
    public void onRatingChanged(RatingBar ratingBar, float rating,
                                boolean fromUser) {
            Toast.makeText(RateUsProductActivity.this,"Rating :-  "+String.valueOf(rating),Toast.LENGTH_SHORT).show();
        if(rating<1.0f)
            ratingBar.setRating(1.0f);
    }
});

当评分小于1时,会自动设置评分1

祝您编码愉快!

设置 OnRatingBarChangeListener 会起作用,但此解决方案的问题是,如果您尝试将评级拖到 1 星以下,它将显示零星一秒钟,然后才会跳回理想的 1 星。 为了避免这种“闪烁”行为,我建议继承RatingBar并覆盖方法getMin 例如:

class MinStarRatingBar @JvmOverloads constructor(
    context: Context,
    attrs: AttributeSet? = null,
    defStyleAttr: Int = 0
) : AppCompatRatingBar(context, attrs, defStyleAttr) {

    private var minStars = 0

    fun setMinimumStars(minStars: Int) {
        this.minStars = minStars
    }

    override fun getMin(): Int {
        return minStars
    }
}

然后只需使用ratingBar.setMinimumStars(/*your value*/)

注意:我不知道为什么,但是setMin方法不起作用。 它至少需要 Api 26 才能运行,并且更改了 Ratinbar 中的更改步骤,并且由于某种原因不影响星星的最小值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM