2016-07-27 16 views
-2

我正在開發一款Android應用程序,其中我有一個RatingBar。目前正在進行測試,我將在1-5之間隨機設置它的值。出於某種原因,評分欄總是從中心開始,並且從不佔用整個可用空間。下面是它在應用程序中的外觀: enter image description hereAndroid:不佔用完整空間的評級欄

評級欄左側的整個空間是我在XML中給出的,但它沒有被填充。

評分欄的另一個問題是,如何在評分欄左側添加文本。類似Text...(XXXXX)。謝謝

代碼:

<RatingBar 
       android:layout_width="135dp" 
       android:layout_height="40dp" 
       android:id="@+id/productStars" 
       android:numStars="5" 
       android:scaleX="0.3" 
       android:scaleY="0.3" 
       android:stepSize="1" 
       android:layout_alignWithParentIfMissing="false" 
       android:paddingLeft="20dp" 
       android:layout_alignParentBottom="true" 
       android:layout_alignRight="@+id/description" 
       android:layout_alignEnd="@+id/description" /> 

更新

整個佈局:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:descendantFocusability="blocksDescendants" 
    android:orientation="horizontal" 
    android:padding="5dip" 
    android:background="@color/common_action_bar_splitter" 

    > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:layout_marginLeft="5dp" 
     android:layout_marginStart="5dp" 
     android:layout_marginTop="5dp" 
     android:layout_marginBottom="5dp" 
     android:layout_marginRight="5dp" 
     android:layout_marginEnd="5dp" 
     > 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="150dp" 
      > 
      <ImageView 
       android:layout_width="150dp" 
       android:layout_height="200dp" 
       android:id="@+id/productImage" 
       android:background="@drawable/layout_image" 

       /> 
      <TextView 
       android:id="@+id/comments" 
       android:layout_width="50dp" 
       android:layout_height="35dp" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="@color/abc_input_method_navigation_guard" 
       android:gravity="left" 
       android:singleLine="true" 
       android:layout_marginStart="4dp" 
       android:layout_marginLeft="4dp" 
       android:layout_above="@+id/productStars" 
       android:layout_alignParentRight="true" 
       android:layout_alignParentEnd="true" 
       android:layout_alignLeft="@+id/description" 
       android:layout_alignStart="@+id/description" /> 

      <TextView 
       android:id="@+id/productName" 
       android:layout_width="match_parent" 
       android:layout_height="40dp" 
       android:gravity="left" 
       android:scrollHorizontally="true" 
       android:visibility="visible" 
       android:layout_toEndOf="@+id/productImage" 
       android:layout_toRightOf="@+id/productImage" 
       android:textColor="@color/abc_input_method_navigation_guard" 
       android:typeface="monospace" 
       android:layout_marginStart="5dp" 
       android:layout_marginLeft="5dp" 
       android:singleLine="true" 
       /> 

      <TextView 
       android:id="@+id/description" 
       android:layout_width="match_parent" 
       android:layout_height="30dp" 
       android:layout_gravity="center_horizontal|top" 
       android:ellipsize="end" 
       android:singleLine="true" 
       android:gravity="left" 
       android:scrollHorizontally="true" 
       android:visibility="visible" 
       android:layout_above="@+id/comments" 
       android:layout_toEndOf="@+id/productImage" 
       android:layout_below="@+id/productName" 
       android:layout_toRightOf="@+id/productImage" 
       android:textColor="@color/abc_input_method_navigation_guard" 
       android:layout_marginStart="5dp" 
       android:layout_marginLeft="5dp" 
       android:layout_marginRight="3dp" 
       android:layout_marginEnd="3dp" /> 

      <RatingBar 
       android:layout_width="135dp" 
       android:layout_height="40dp" 
       android:id="@+id/productStars" 
       android:numStars="5" 
       android:scaleX="0.3" 
       android:scaleY="0.3" 
       android:stepSize="1" 
       android:layout_alignWithParentIfMissing="false" 
       android:layout_alignParentBottom="true" 
       android:layout_alignRight="@+id/description" 
       android:layout_alignEnd="@+id/description" /> 
      <ImageButton 
       android:layout_width="45dp" 
       android:layout_height="45dp" 
       android:id="@+id/swapButton" 
       android:src="@drawable/swappossible" 
       android:background="@null" 
       android:layout_alignParentBottom="true" 
       android:layout_toLeftOf="@+id/productStars" 
       android:layout_toStartOf="@+id/productStars" /> 
     </RelativeLayout> 
    </LinearLayout> 
</RelativeLayout> 
+1

您是否嘗試給wrap_content添加寬度? – user1841702

+0

請顯示完整佈局 – Divers

+0

@ user1841702:是的,則條寬將增加左邊的按鈕和圖像的重疊。 –

回答

1

嘗試用此替換您的評級欄

<RatingBar 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/productStars" 
    android:stepSize="1" 
    android:numStars="5" 
    style="?android:attr/ratingBarStyleSmall" 
    android:layout_alignRight="@+id/description" 
    android:layout_alignEnd="@+id/description" /> 
+0

@我們是博格你應該試試這個 – LvN

+0

這對我很好...問題解決了。 –

1

不要給固定寬度來評價吧,把它wrap_content。爲了使評級酒吧小用這個代替

style="?android:attr/ratingBarStyleSmall" 

添加到您的評價吧 根據你的代碼應該是這樣的

<RatingBar 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/productStars" 
    android:numStars="5" 
    style="?android:attr/ratingBarStyleSmall" 
    android:stepSize="1" 
    android:layout_alignWithParentIfMissing="false" 
    android:layout_alignParentBottom="true" 
    android:layout_alignRight="@+id/description" 
    android:layout_alignEnd="@+id/description" 
    android:layout_gravity="center"/> 

製作高度WRAP_CONTENT太和刪除scaleXscaleY

+0

這使得星星消失 –

+0

@ WeareBorg更新了答案。請檢查 –

+0

謝謝,它有幫助,但我已經有了相同的答案... –