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