我对Android开发很陌生。我试图将ratingBar指标添加到将成为ListView项目的布局屏幕,因此用户会看到一个餐馆名称列表,其中每个名称的右侧都有星号值。
我希望将视图限制为5星 - 即它应该永远不会显示超过5颗星,而且只有当用户将餐厅评为5星(在另一项活动中)时才会显示5星。
我已经阅读了this,this和this,以及ratingBar的developer.android.com文档,我无法为我的生活获取它只显示 5星。
这是我的布局代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="64dp"
android:paddingRight="32dp"
android:paddingTop="4dp"
android:paddingBottom="4dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/restaurantNameLabel"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:textColor="#000000"
android:textSize="16sp"
tools:text="Shamrock Club"
/>
<RatingBar
android:id="@+id/ratingBar"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:numStars="5"
android:stepSize=".01"
android:isIndicator="true"
android:rating="3"
android:layout_toEndOf="@id/restaurantNameLabel"/>
</RelativeLayout>
这就是Android Studio Design视图中的样子;请注意,有6个以上的星星显示。我在这里缺少什么?
答案 0 :(得分:0)
如果你可以从相对布局改为线性布局,这应该可以正常工作
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="64dp"
android:paddingRight="32dp"
android:paddingTop="4dp"
android:paddingBottom="4dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/restaurantNameLabel"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:textColor="#000000"
android:textSize="16sp"
tools:text="Shamrock Club"
/>
<RatingBar
android:id="@+id/ratingBar"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:numStars="5"
android:stepSize=".01"
android:isIndicator="true"
android:rating="3"
android:layout_toEndOf="@id/restaurantNameLabel"/>
</LinearLayout>
它现在的方式实际上只显示3颗星,但你可以改变android:等级来反映你想要的。