Android 控件 - RatingBar

RatingBar 评分条 是一个很常见的控件,常见于电商网站、应用商城等需要征求用户意见的地方。

基本使用

1. XML 属性

属性 注释
isIndicator 是否用作用户无法更改的指示器,默认为 false
numStars 显示多少个星星,整数
rating 默认评分值,浮点数
stepSize 评分每次增加的值,浮点数

2. 事件处理

为 RatingBar 设置 OnRatingBarChangeListener 事件,重写 onRatingChanged() 方法即可

示例代码

activity_main.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">


<RatingBar
android:id="@+id/ratingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:numStars="5"
android:rating="3"
android:stepSize="0.5" />

<TextView
android:id="@+id/tv1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="20sp"
android:textStyle="bold" />
</LinearLayout>

MainActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

RatingBar ratingBar = findViewById(R.id.ratingBar);
final TextView tv = findViewById(R.id.tv1);

ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
tv.setText(String.valueOf(rating));
}
});
}
}

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×