2013-05-15 32 views
3

我已經創建了一個自定義RatingBar,如在這裏給出的關於堆棧溢出的教程之一中描述的,它看起來很棒,問題在於圖片居中。這裏是我得到的: enter image description here如何在Android中居中RatingBar

正如你可以看到TextView在LinearLayout中垂直居中,但RatingBar位於它的頂部。下面是這個形象我的XML代碼:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/scrollView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:foregroundGravity="center" > 

    <LinearLayout 
     android:layout_width="320dp" 
     android:layout_height="match_parent" 
     android:gravity="center" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="TextView" /> 

     <RatingBar 
      android:id="@+id/ratingBar1" 
      style="@style/starsRatingBar" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:numStars="5" 
      android:rating="2.3" 
      android:stepSize="1" /> 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="right" 
      android:src="@drawable/ic_launcher" /> 

    </LinearLayout> 

</ScrollView> 

這裏是造型代碼:

<style name="starsRatingBar" parent="@android:style/Widget.RatingBar"> 
     <item name="android:progressDrawable">@drawable/star_ratingbar_full</item> 
     <item name="android:minHeight">36dip</item> 
     <item name="android:maxHeight">36dip</item> 
    </style> 

中的RatingBar任何想法,將apprisiated!

THANKS

+0

你嘗試過'center_vertical'嗎? –

+0

是的,它沒有幫助 – vlio20

+0

我認爲你還需要將'layout_height'設置爲'match_parent',以便它具有完整的高度以便在...中的重力... –

回答

4

好吧,我想我已經知道了。

關鍵問題是ScrollView:它自動使事情變得緊湊,除非您另有特別說明。在滾動視圖中,設置爲

android:fillViewport="true" 

使其使用可用空間。

0

你好獲得在頂部,你必須把所有的項目:中

<TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="top" 
      android:text="TextView" /> 

代替:

<TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="TextView" /> 

如果你只是想在評價欄中心: 只是刪除style =「@ style/starsRatingBar」

編輯: 忘記任何覺得我說befor,它似乎更好地工作,當我改變了風格:(調整最小/最大高度,以獲得「完美的結果」)

<style name="starsRatingBar" parent="@android:style/Widget.RatingBar"> 
     <item name="android:progressDrawable">@android:drawable/star_on</item> 
     <item name="android:minHeight">26dip</item> 
     <item name="android:maxHeight">26dip</item> 
    </style> 
+0

但'style =「@ style/starsRatingBar」 '是我的RatingBar自定義樣式。問題是:如何垂直居中RatingBar。 – vlio20

+0

可以請你發佈你的風格「starsRatingBar」 – Simo

+0

編輯我的問題。謝謝!!! – vlio20