android 评分栏仅显示整数值
android rating bar shows only int values
我使用此代码通过评级栏显示小数值。但它对值进行舍入并首先显示更大的 int
ratingBar.setNumStars(5);
ratingBar.setMax(5);
ratingBar.setStepSize(0.5f);
ratingBar.setRating(Float.parseFloat("2.5"));
在 XML 文件中
<RatingBar
android:id="@+id/ratingBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:max="5"
android:layoutDirection="ltr"
android:numStars="5"
android:stepSize="0.5" />
布局:
<RatingBar android:id="@+id/ratingbar" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:stepSize="0.5"/>
Activity:
private RatingBar ratingBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ratingBar = (RatingBar)findViewById(R.id.ratingBar);
assert ratingBar != null;
dosomething();
ratingBar.setRating(0.0f);
}
private void dosomething() {
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
ratingBar.setRating(2.5f);
}
}, 2000);
}
结果为表格图片:
我在 sdk 23
中测试了您的代码,遇到了同样的问题。我想不出这个追加的方法,但你可以在设置 float
之前通过设置舍入值暂时解决它。像这样:
ratingBar.setRating(Math.round( 2.5f));
ratingBar.setRating( 2.5f);
也不要设置 setMax
,只设置 setStepSize
。让我知道它是否有效。
我使用此代码通过评级栏显示小数值。但它对值进行舍入并首先显示更大的 int
ratingBar.setNumStars(5);
ratingBar.setMax(5);
ratingBar.setStepSize(0.5f);
ratingBar.setRating(Float.parseFloat("2.5"));
在 XML 文件中
<RatingBar
android:id="@+id/ratingBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:max="5"
android:layoutDirection="ltr"
android:numStars="5"
android:stepSize="0.5" />
布局:
<RatingBar android:id="@+id/ratingbar" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:stepSize="0.5"/>
Activity:
private RatingBar ratingBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ratingBar = (RatingBar)findViewById(R.id.ratingBar);
assert ratingBar != null;
dosomething();
ratingBar.setRating(0.0f);
}
private void dosomething() {
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
ratingBar.setRating(2.5f);
}
}, 2000);
}
结果为表格图片:
我在 sdk 23
中测试了您的代码,遇到了同样的问题。我想不出这个追加的方法,但你可以在设置 float
之前通过设置舍入值暂时解决它。像这样:
ratingBar.setRating(Math.round( 2.5f));
ratingBar.setRating( 2.5f);
也不要设置 setMax
,只设置 setStepSize
。让我知道它是否有效。