【问题标题】:Android: How do I change the rating an indicator rating bar?Android:如何更改指标评分栏的评分?
【发布时间】:2016-07-04 16:04:37
【问题描述】:

我有一个指标评分栏:

<RatingBar
    android:id="@+id/ratingBar"
    style="?android:attr/ratingBarStyleIndicator"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:rating="2.5"
    android:numStars="5"/>

您可以看到 xml 告诉评分栏目前反映 2.5 颗星。

单击一个按钮,我希望它反映 5 颗星,所以我编写了以下代码:

indicatorRatingBar = (RatingBar) findViewById(R.id.ratingBar);
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        indicatorRatingBar.setIsIndicator(false);
        indicatorRatingBar.setRating(5);
        indicatorRatingBar.setIsIndicator(true);
    }
});

评分栏根本不会更新。不知道是不是因为是指标评分栏?

如何让设置为指示器样式的评分栏正常工作?

【问题讨论】:

    标签: android ratingbar


    【解决方案1】:

    我实际上是通过反复试验找到了答案。我只需要在视图上调用 invalidate,因为它已更改并且它不会自动使自身失效。

    indicatorRatingBar = (RatingBar) findViewById(R.id.ratingBar);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            indicatorRatingBar.setRating(5);
            indicatorRatingBar.invalidate();
            indicatorRatingBar.setIsIndicator(true);
        }
    });
    

    【讨论】:

      【解决方案2】:

      改成

      indicatorRatingBar.setRating(5.0f);
      

      【讨论】:

      • 不。这不会有什么不同。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多