2016-11-18 55 views
1

後我創造當我將此屬性使用此屬性android:progressDrawable="@drawable/ratingstars"的RatingBar layout_centerVertical屬性行不通設置progressDrawable

定製的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> 

自定義繪製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> 

回答

0

使用評級酒吧LIB自定義所有的RatingBar性能https://github.com/whinc/RatingBar

+0

所以NE編輯使用lib的呢? –

+0

作爲您的選擇,如果使用lib我們可以自定義一切從評級欄,正常評級欄基於風格 – Vadivel

+0

行爲否則你可以增加評級欄填充和未填充圖標 – Vadivel