Android:如何更改指标评级栏的评级?

时间:2016-07-04 16:04:38

标签: android ratingbar

我有一个指标评级栏:

<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);
    }
});

评级栏根本不会更新。我不知道是不是因为它是一个指标评级栏?

如何使用指标样式设置的评级栏正常工作?

2 个答案:

答案 0 :(得分: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);
    }
});

答案 1 :(得分:-1)

将其更改为

indicatorRatingBar.setRating(5.0f);