Android评级栏布局权重属性不正常

时间:2015-12-07 14:25:22

标签: android ratingbar

我在TextView中有RatingBarLinearLayout,并且有水平方位。

我想在最左边的区域设置TextView,在最右边的区域设置RatingBar。所以我给LinearLayout一个权重和这两个视图,以便稍后我可以给他们layout_gravity leftend

但问题是,当我给出评级栏layout_weight时,它会增加或减少其评级栏编号。我已将评级栏编号设置为固定,但仍然无效。那么如何为layout_weight设置RatingBar

我的代码:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="10">
        <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="3"
        android:layout_marginLeft="10sp"
        android:textSize="20sp"
        android:text="Service"/>
        <RatingBar
        android:id="@+id/rbAddFoodItemRatingDialog"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="?android:attr/ratingBarStyleIndicator"
        android:numStars="5"
        android:max="5"
        android:layout_weight="7"
        android:theme="@style/RatingBar"
        android:rating="3.5"/>
</LinearLayout>

这个XML布局给了我7个评级栏而不是5个吧!这有什么问题?

1 个答案:

答案 0 :(得分:1)

将其包裹在线性布局中并将权重设置为

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="10">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="3"
        android:layout_marginLeft="10sp"
        android:textSize="20sp"
        android:text="Service"/>

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="7">

        <RatingBar
            android:id="@+id/rbAddFoodItemRatingDialog"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="?android:attr/ratingBarStyleIndicator"
            android:numStars="5"
            android:max="5"
            android:theme="@style/RatingBar"
            android:rating="3.5"/>

    </LinearLayout>
</LinearLayout>