设置progressDrawable后,ratingbar layout_centerVertical属性不起作用

时间:2016-11-18 06:49:42

标签: android ratingbar

我正在使用此属性android:progressDrawable="@drawable/ratingstars"

创建自定义RatingBar

当我应用此属性时,它会自动添加更多空间。所以,我想删除不必要的空间。

如果删除此属性,我会获得默认的RatingBar,所以请帮助我。

以下是截图,因此您可以更好地理解。

enter image description here

这是我的xml文件

    <?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="15dp"
    android:elevation="20dp"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:orientation="vertical"
        android:weightSum="10">

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="8"
            android:background="@drawable/placeholder"/>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="2">

            <TextView
                android:id="@+id/tv_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_centerVertical="true"
                android:layout_marginLeft="15dp"
                android:layout_toLeftOf="@+id/rating"
                android:maxLines="1"
                android:text="Rides"
                android:textColor="@color/colorPrimary"
                android:textSize="20sp"
                android:textStyle="bold" />

            <RatingBar
                android:id="@+id/rating"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginEnd="20dp"
                android:layout_marginRight="20dp"
                android:layout_marginTop="20dp"
                android:layout_toLeftOf="@+id/tv_more"
                android:layout_toStartOf="@+id/tv_more"
                android:isIndicator="true"
                android:progressDrawable="@drawable/ratingstars"
                android:rating="4" />

            <TextView
                android:id="@+id/tv_more"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:layout_marginEnd="10dp"
                android:layout_marginRight="10dp"
                android:background="@drawable/rounded"
                android:padding="10dp"
                android:text="More"
                android:textColor="@color/white"
                android:textSize="16sp"
                android:textStyle="bold" />

        </RelativeLayout>

    </LinearLayout>


</android.support.v7.widget.CardView>

自定义drawable ratingstars.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:layout_centerVertical="true"
        android:gravity="center_vertical"
        android:layout_gravity="center_vertical"
        android:id="@android:id/background"
        android:drawable="@drawable/star_blank" />
    <item
        android:layout_gravity="center_vertical"
        android:layout_centerVertical="true"
        android:gravity="center_vertical"
        android:id="@android:id/secondaryProgress"
        android:drawable="@drawable/star_blank" />
    <item
        android:layout_gravity="center_vertical"
        android:layout_centerVertical="true"
        android:gravity="center_vertical"
        android:id="@android:id/progress"
        android:drawable="@drawable/star_fill" />
</layer-list>

1 个答案:

答案 0 :(得分:0)

使用评级栏lib自定义所有评级栏属性https://github.com/whinc/RatingBar