我有一个指标评级栏:
<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);
}
});
评级栏根本不会更新。我不知道是不是因为它是一个指标评级栏?
如何使用指标样式设置的评级栏正常工作?
答案 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);