簡體   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