RatingBar 不显示准确的评分

RatingBar deosn't show exact rating

我已将 RatingBar 添加到我的 ListView 的每个项目中。它运行良好,但未显示 准确评级 。例如,如果评级是 4.3,它必须显示第 5 颗星的一部分,但它 不会

截图

您知道问题出在哪里吗?

我很乐意提供任何帮助或建议。

ratingsbar.xml

    <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+android:id/background"
          android:drawable="@drawable/ic_action_star_rate1" />
    <item android:id="@+android:id/secondaryProgress"
          android:drawable="@drawable/ic_action_star_rate1" />
    <item android:id="@+android:id/progress"
          android:drawable="@drawable/ic_action_star_rate" />
</layer-list>

我的适配器中 getView() 中的方法

if(clubs.getInt("clubRating")!= 0){
        holder.rating.setRating((float) (clubs.getInt("clubRating"))); 
        }else{
            holder.rating.setRating(0); 
        }

项目布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="220dp"
    android:minHeight="220dp"
    android:background="@drawable/club_item"
    android:id="@+id/clubAll" >


   <ImageView
        android:id="@+id/club_poster"
        android:layout_width="match_parent"
        android:layout_height="220dp"
        android:src="@drawable/placeholder"
        android:scaleType="centerCrop" />

    <ImageView
        android:id="@+id/club_vip_small"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:scaleType="fitXY"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
         />


    <TextView
        android:id="@+id/club_events_true"
        android:layout_width="wrap_content"
        android:layout_height="35dp"
        android:padding="2dp"
        android:textSize="13sp"
        android:textColor="#FFFFFF"
        android:gravity="center_vertical"
        android:paddingRight="7dp"
        android:text="@string/events_true"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:background="#00C659"
        android:drawableLeft="@drawable/eventsup" />


    <TextView
        android:id="@+id/club_discounts_true"
        android:layout_width="wrap_content"
        android:layout_height="35dp"
        android:padding="2dp"
        android:paddingRight="7dp"
        android:textSize="13sp"
        android:gravity="center_vertical"
        android:textColor="#FFFFFF"
        android:text="@string/discounts_true"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/club_events_true"
        android:background="#F6D100"
        android:drawableLeft="@drawable/golden_discount" />


    <RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="90dp"
    android:minHeight="75dp"
    android:layout_alignParentBottom="true"
    android:background="#FFFFFF"
    android:id="@+id/club_head_info" >


     <com.example.android.ImageViewRounded
        android:id="@+id/club_club_logo"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:src="@drawable/placeholder_club"
        android:scaleType="fitXY"
        android:layout_marginLeft="5dp"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true" />


     <com.example.android.AutofitTextView
        android:id="@+id/club_distance_small"
        android:layout_width="57dp"
        android:layout_height="57dp"
        android:background="@drawable/meters_back"
        android:layout_marginLeft="5dp"
        android:gravity="center"
        android:singleLine="true"
        android:padding="3dp"
        android:textSize="16sp"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true" />

     <RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="70dp"
    android:layout_marginLeft="10dp"
    android:layout_centerVertical="true"
    android:layout_toRightOf="@id/club_club_logo"
    android:id="@+id/club_foot_info" >

         <TextView
        android:id="@+id/club_type_fake"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Bar"
        android:paddingRight="4dp"
        android:visibility="invisible"
        android:textStyle="bold"
        android:paddingLeft="4dp"
        android:paddingTop="2dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:paddingBottom="2dp"
        android:textAllCaps="true"
        android:textSize="11sp"
        android:textColor="#FFFFFF"
        android:layout_marginRight="4dp"
        android:background="@drawable/type_btn_bar" />

         <RelativeLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:id="@+id/club_typerate"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" >

     <TextView
        android:id="@+id/club_type_small"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Bar"
        android:paddingRight="4dp"
        android:textStyle="bold"
        android:paddingTop="2dp"
        android:paddingBottom="2dp"
        android:paddingLeft="4dp"
        android:textAllCaps="true"
        android:textSize="11sp"
        android:textColor="#FFFFFF"
        android:background="@drawable/type_btn_bar" />

      <RatingBar
      android:id="@+id/club_rating_small"
      android:padding="1dp"
      android:layout_height="wrap_content"
      android:layout_width="wrap_content"
      android:layout_toRightOf="@id/club_type_small"
      android:layout_centerVertical="true"
      android:isIndicator="true"
      android:stepSize="0.01"
      android:numStars="5"
      style="@style/foodRatingBar"    
           />

      </RelativeLayout>
      <TextView
        android:id="@+id/club_title_small"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:textSize="16sp"
        android:singleLine="true"
        android:text="ROXY Prague"
        android:ellipsize="end"
        android:padding="1dp"
        android:layout_below="@id/club_type_fake"
        android:layout_marginTop="3dp"
        android:textColor="#000"
        android:textStyle="bold"
         />

      <TextView
        android:id="@+id/club_openclose_small"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:textSize="14sp"
        android:gravity="fill"
        android:text="@string/open"
        android:textColor="#00AC00"
        android:layout_below="@id/club_title_small"
         />


      </RelativeLayout>

    </RelativeLayout>


</RelativeLayout>

getView() 中,您将评级请求为整数,然后将其转换为浮点数。因此,十进制值会丢失。改为存储浮点值,然后使用 getFloat:

holder.rating.setRating(clubs.getFloat("clubRating"));