2012-06-13 100 views
2

我正在開發一個Android應用程序。在ListView上垂直居中列表項

在一個活動中,我有一個帶有列表項目的列表。這些列表項目將有一個TextView(我使用我自己的佈局,因爲可能我需要添加更多的小部件)。

這是ListActivity XML:

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

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="match_parent" 
     android:layout_height="469dp" 
     android:layout_marginLeft="20dp" 
     android:layout_marginRight="20dp" 
     android:layout_marginTop="40dp"> 
    </ListView> 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" > 
     <TextView 
      android:id="@+id/orderErrorMsg" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentBottom="true" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:padding="10dp" 
      android:textSize="16dp" > 
     </TextView> 
    </RelativeLayout> 

</LinearLayout> 

這是列表項的xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="100dp" 
    android:orientation="vertical"> 

    <TextView 
     android:id="@+id/orderToFillName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:textSize="20dp" /> 

</LinearLayout> 

最後,這是結果:

enter image description here

爲什麼TextView的是不是垂直居中?

回答

4

您對的TextView的layout_height「WRAP_CONTENT」 =沒有空間,因爲TextView是被緊緊包裹到中心垂直上。

嘗試更改layout_height爲「match_parent」或將gravity放置在LinearLayout中的「center_vertical」屬性。

<TextView 
     android:id="@+id/orderToFillName" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="center_vertical" 
     android:textSize="20dp" /> 
+0

是啊!這工作!謝謝! – VansFannel

0

試試這個方法:

<TextView 
     android:id="@+id/orderToFillName" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:gravity= "center_vertical|center_horizontal" 
     android:textSize="20dp" /> 

android:gravity="center" 
1

答案是非常簡單的:你必須把它添加到您的TextView的XML:您目前

android:gravity="center" 

不是在TextView中設置文本的位置,而只是在視圖的位置。

最良好的祝願, 添