ratingbar 无法显示当前的 numStars
ratingbar can not show current numStars
我有一个 RatingBar 并使用方法 setNumStars(final int numStars)。
在 XML 中,代码是这样的:
<RatingBar
android:id="@+id/rating_bar"
style="@style/CMYMyRatingBars"
android:isIndicator="true"
android:numStars="5"
android:rating="5"
/>
那就有问题了。当 numStars 为 0 时。我的 RatingBar 将显示 5 颗星。
private RatingBar ratingBar;
private float ratingValue;
ratingBar = (RatingBar) findViewById(R.id.rating_bar);
ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
ratingValue = rating;
}
});
ratingBar.getRating();
<RatingBar
android:id="@+id/rating_bar"
style="@style/CMYMyRatingBars"
android:isIndicator="true"
android:numStars="0"
android:rating="4"
/>
因为您给出了 5 分的评分,所以当您给出 0 numStars 时它会显示 5 分。我已经执行了这段代码并且代码正在运行 fine.You 必须看到零评级然后执行这段代码。
<RatingBar
android:id="@+id/rating_bar"
style="@style/CMYMyRatingBars"
android:isIndicator="true"
android:numStars="0"
android:rating="0"
/>
样式
<style name="CMYMyRatingBars" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/ratingbar</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">35dp</item>
<item name="android:gravity">center</item>
</style>
ratingbar.xml
<item
android:id="@+android:id/background"
android:drawable="@drawable/ratingbar_empty"/>
<item
android:id="@+android:id/secondaryProgress"
android:drawable="@drawable/ratingbar_empty"/>
<item
android:id="@+android:id/progress"
android:drawable="@drawable/ratingbar_filled"/>
ratingbar_filled.xml
<item android:drawable="@drawable/ratingbar_staron" android:state_pressed="true" android:state_window_focused="true"/>
<item android:drawable="@drawable/ratingbar_staron" android:state_focused="true" android:state_window_focused="true"/>
<item android:drawable="@drawable/ratingbar_staron" android:state_selected="true" android:state_window_focused="true"/>
<item android:drawable="@drawable/ratingbar_staron"/>
ratingbar_empty.xml
<item android:drawable="@drawable/ratingbar_staroff" android:state_pressed="true" android:state_window_focused="true"/>
<item android:drawable="@drawable/ratingbar_staroff" android:state_focused="true" android:state_window_focused="true"/>
<item android:drawable="@drawable/ratingbar_staroff" android:state_selected="true" android:state_window_focused="true"/>
<item android:drawable="@drawable/ratingbar_staroff"/>
我有一个 RatingBar 并使用方法 setNumStars(final int numStars)。 在 XML 中,代码是这样的:
<RatingBar
android:id="@+id/rating_bar"
style="@style/CMYMyRatingBars"
android:isIndicator="true"
android:numStars="5"
android:rating="5"
/>
那就有问题了。当 numStars 为 0 时。我的 RatingBar 将显示 5 颗星。
private RatingBar ratingBar;
private float ratingValue;
ratingBar = (RatingBar) findViewById(R.id.rating_bar);
ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
ratingValue = rating;
}
});
ratingBar.getRating();
<RatingBar
android:id="@+id/rating_bar"
style="@style/CMYMyRatingBars"
android:isIndicator="true"
android:numStars="0"
android:rating="4"
/>
因为您给出了 5 分的评分,所以当您给出 0 numStars 时它会显示 5 分。我已经执行了这段代码并且代码正在运行 fine.You 必须看到零评级然后执行这段代码。
<RatingBar
android:id="@+id/rating_bar"
style="@style/CMYMyRatingBars"
android:isIndicator="true"
android:numStars="0"
android:rating="0"
/>
样式
<style name="CMYMyRatingBars" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/ratingbar</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">35dp</item>
<item name="android:gravity">center</item>
</style>
ratingbar.xml
<item
android:id="@+android:id/background"
android:drawable="@drawable/ratingbar_empty"/>
<item
android:id="@+android:id/secondaryProgress"
android:drawable="@drawable/ratingbar_empty"/>
<item
android:id="@+android:id/progress"
android:drawable="@drawable/ratingbar_filled"/>
ratingbar_filled.xml
<item android:drawable="@drawable/ratingbar_staron" android:state_pressed="true" android:state_window_focused="true"/>
<item android:drawable="@drawable/ratingbar_staron" android:state_focused="true" android:state_window_focused="true"/>
<item android:drawable="@drawable/ratingbar_staron" android:state_selected="true" android:state_window_focused="true"/>
<item android:drawable="@drawable/ratingbar_staron"/>
ratingbar_empty.xml
<item android:drawable="@drawable/ratingbar_staroff" android:state_pressed="true" android:state_window_focused="true"/>
<item android:drawable="@drawable/ratingbar_staroff" android:state_focused="true" android:state_window_focused="true"/>
<item android:drawable="@drawable/ratingbar_staroff" android:state_selected="true" android:state_window_focused="true"/>
<item android:drawable="@drawable/ratingbar_staroff"/>