我有这样的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RatingBar
android:id="@+id/bar_detail_rating"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:isIndicator="true"
android:max="10"
android:numStars="10"
android:padding="0dp"
android:rating="7"
android:scaleX="0.7"
android:scaleY="0.7"
android:stepSize="1" />
</LinearLayout>使用android:max=10、android:numStars=10、android:stepSize=1,我希望它显示10颗星,并且通常显示我通过setRating()传递的值的单位星等中的1颗星。但这并没有发生。我附上了一个来自Android Studio布局预览的屏幕截图;这几乎就是它在我的Nexus5上的显示方式。
它的计算似乎是正确的;对于评级为7的情况,它对7/10星进行了阴影处理(即8 x 7/10 = 5.6星)。
我只是想不出问题是什么,这里。

发布于 2017-02-25 19:50:21
似乎RatingBar中的星星不会被安卓调整大小;所以在我的例子中,只有7颗星星的空间。在景观布局中,我可以看到10颗星。
调整星星的大小需要一些阅读;但最终遇到了这样的情况:
http://web.archive.org/web/20160323223259/http://kozyr.zydako.net/2010/05/23/pretty-ratingbar/
在我的例子中,关键是定义了一个样式:
<style name="MyRatingBar" parent="@android:style/Widget.DeviceDefault.RatingBar.Indicator">
<item name="android:minHeight">48dp</item>
<item name="android:maxHeight">48dp</item>
</style>应用此样式可减小星形大小并使其适合屏幕。
发布于 2017-02-25 18:42:42
这是7/10,仅限为0-5/5
<RatingBar
android:id="@+id/bar_detail_rating"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:rating="3.5"
/>https://stackoverflow.com/questions/42454706
复制相似问题