Android AppCompatRatingBar 科普
简介
Android AppCompatRatingBar 是 Android 支持库中的一个组件,用于显示评分、打分等需求。AppCompatRatingBar 继承自 RatingBar,但在外观上更加符合当前的 Material Design 风格。它可以在 Android 2.1 (API 级别 7) 或更高版本的设备上使用,并且与其他 AppCompat 组件兼容。本文将向您介绍如何使用 AppCompatRatingBar 并提供代码示例。
一、添加依赖
在使用 AppCompatRatingBar 之前,我们需要在项目的 build.gradle 文件中添加以下依赖:
implementation 'androidx.appcompat:appcompat:1.4.0'
二、使用 AppCompatRatingBar
AppCompatRatingBar 的使用方式与 RatingBar 类似。以下是一个简单的示例:
<androidx.appcompat.widget.AppCompatRatingBar
android:id="@+id/ratingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:rating="3.5"
app:ratingBarStyle="?attr/ratingBarStyleIndicator"
/>
在上面的示例中,我们创建了一个 AppCompatRatingBar,并设置了一些属性。下面是示例中用到的属性解释:
android:numStars
:设置星星的数量,默认为 5 颗。android:rating
:设置当前的评分值,默认为 0。app:ratingBarStyle
:设置评分条的样式,可以使用?attr/ratingBarStyleIndicator
来使用系统默认的样式。
三、监听评分变化
如果我们需要监听评分的变化,可以通过添加 OnRatingBarChangeListener 来实现。以下是一个示例:
AppCompatRatingBar ratingBar = findViewById(R.id.ratingBar);
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
// 在这里处理评分变化的逻辑
Log.d("RatingBar", "Rating changed: " + rating);
}
});
在上面的示例中,我们通过 setOnRatingBarChangeListener
方法设置了一个评分变化的监听器,当评分发生变化时,会触发 onRatingChanged
方法,并传递当前的评分值和是否是用户操作的标志。
四、自定义样式
如果默认的样式无法满足需求,我们还可以自定义 AppCompatRatingBar 的样式。以下是一个自定义样式的示例:
<style name="CustomRatingBar" parent="Widget.AppCompat.RatingBar">
<item name="android:progressDrawable">@drawable/custom_rating_bar</item>
</style>
在上面的示例中,我们创建了一个名为 CustomRatingBar
的样式,并指定了 android:progressDrawable
属性,它引用了一个自定义的评分条样式。接下来,我们需要创建 custom_rating_bar.xml
文件来定义自定义的样式:
<layer-list xmlns:android="
<item android:id="@android:id/background"
android:drawable="@drawable/custom_rating_bar_bg" />
<item android:id="@android:id/secondaryProgress"
android:drawable="@drawable/custom_rating_bar_secondary" />
<item android:id="@android:id/progress"
android:drawable="@drawable/custom_rating_bar_progress" />
</layer-list>
在上面的示例中,我们使用了 layer-list
来定义了评分条的三个状态:背景、次级进度和主要进度。我们需要分别创建 custom_rating_bar_bg.xml
、custom_rating_bar_secondary.xml
和 custom_rating_bar_progress.xml
这三个文件,并设置它们的样式。
五、总结
通过本文,您已经了解了 Android AppCompatRatingBar 的基本用法和一些常见的属性。您可以根据自己的需求来使用 AppCompatRatingBar,并根据需要自定义样式。希望本文能对您有所帮助。
参考资料
- [Android Developers: RatingBar](
- [Android Developers: AppCompatRatingBar](