2012-05-03 46 views
-3

並不總是這樣的佈局:安卓:layout_gravity預期

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="#ffffff" 
android:orientation="vertical" > 

<TextView 
    android:id="@+id/main_tv" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:keepScreenOn="true" 
    android:text="@string/hello" 
    android:textAppearance="@android:style/TextAppearance.Large" 
    android:textColor="#0000ff" /> 

<ProgressBar 
    android:id="@+id/main_progressBar" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" /> 

</LinearLayout> 

TextView的水平居中,但爲什麼沒有進度條垂直居中?

ps。我知道我可以使用相對佈局來做到這一點。但我不明白爲什麼它不能使用Linear? ps2。爲什麼投票,這是一個完全合法的問題?

+0

因爲它有'的android:layout_width =「FILL_PARENT」'嘗試給它不同的值 – thepoosh

+0

使用相對佈局.... – MAC

+0

@Thepoosh使其寬度設置爲FILL_PARENT但高度是這裏至關重要。 – tomi

回答

0
<ProgressBar 
    android:id="@+id/main_progressBar" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" /> 

嘗試上述一個

+0

,這將無法正常工作。 – tomi

0
<?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="fill_parent" 
android:background="#ffffff" 
android:orientation="vertical" > 

<TextView 
    android:id="@+id/main_tv" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_gravity="center_horizontal" 
    android:keepScreenOn="true" 
    android:text="@string/hello" 
    android:textAppearance="@android:style/TextAppearance.Large" 
    android:textColor="#0000ff" /> 

<ProgressBar 
    android:id="@+id/main_progressBar" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_centerVertical="true" /> 

</RelativeLayout> 
+0

我發佈這個答案之前,我已測試它。它會正常工作。 立即檢查... –

+0

想要做到線性佈局 – tomi

0

首先,我意識到這是一個非常古老的問題,但也許有人在尋找到這可能會有所幫助。

我不完全確定爲什麼您的確切示例不起作用,如果您現在確實請告訴我。如果爲進度條添加額外的LinearLayout,我知道它是有效的。 像這樣:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#ffffff" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/main_tv" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:keepScreenOn="true" 
     android:text="@string/hello" 
     android:textAppearance="@android:style/TextAppearance.Large" 
     android:textColor="#0000ff" /> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
     <ProgressBar 
      android:id="@+id/main_progressBar" 
      style="?android:attr/progressBarStyleHorizontal" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" /> 
    </LinearLayout> 

</LinearLayout>