【问题标题】:Android RatingBar - quarter star step sizeAndroid RatingBar - 四分之一星步长
【发布时间】:2014-02-03 12:18:56
【问题描述】:

我正在使用默认评分栏,并且要求 stepSize 为 0.25 - 根据文档,这应该很简单,只需将 xml 属性 android:stepSize 设置为 0.25

目前,已经到位,总xml为:

<RatingBar 
        android:id="@+id/ratingbar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@style/RatingBarBig"
        android:layout_below="@+id/score"
        android:layout_centerHorizontal="true"
        android:gravity="center_horizontal"
        android:paddingBottom="5dp"
        android:layout_centerVertical="true"
        android:isIndicator="true"
        android:stepSize="0.25"
        android:numStars="5"
        android:rating="0"/>

我正在使用以下代码以编程方式使用 3.25 的浮点数填充评分栏:

float rating = 3.25f;
RatingBar mRating = (RatingBar) findViewById(R.id.ratingbar);
mRating.setRating(rating);

所以,问题在于评级栏本身被填充以显示3.5 而不是3.25。我什至在rating float 和mRating.getRating 的输出上都设置了Log.d 通知

有人有什么想法吗?

【问题讨论】:

    标签: android ratingbar


    【解决方案1】:

    啊 - 所以在尝试了 2 天之后,我终于问了 SO,会发生什么?十分钟后我想通了……

    问题出在我的drawable中。

    我忘了提到的是,我正在使用第二个 RatingBar,覆盖在第一个之上(只有空的透明星星),因为我在主要的上使用了滤色器来改变基于评级的星星颜色(红、黄、绿)。

    发生的情况是,我用于主要 RatingBar 的可绘制对象需要使用与叠加层完全相同的可绘制对象 - 而不是我之前使用的主题遗留下来的可绘制对象...

    所以,这一切都归结为使用的图像,而不是代码。一旦我被允许,我会接受这个作为正确答案。

    【讨论】:

      【解决方案2】:

      尝试以编程方式设置步长:

      mRating.setStepSize((float) 0.25);
      

      mRating.setRating(rating);之前调用它

      看看这是否有效

      【讨论】:

      • 我想通了 - 我已经发布了一个答案,我将在 2 天内接受。原来这是我的drawables - 代码非常好。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      相关资源
      最近更新 更多