2

我正在开发一个 Android 应用程序。

在一项活动中,我有一个包含列表项的列表。这些列表项将有一个 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>

这是 ListItem 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>

最后,结果如下:

在此处输入图像描述

为什么 TextView 不垂直居中?

4

3 回答 3

4

您在 TextView 的 layout_height 上有“wrap_content” = 因为 TextView 被紧紧包裹,所以没有垂直居中的空间。

尝试将 layout_height 更改为“match_parent”或在 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" />
于 2012-06-13T13:31:34.503 回答
1

答案非常简单:您必须将其添加到 TextView 的 XML 中:

android:gravity="center"

目前,您没有在 TextView 中设置文本的位置,而只是在 View 的位置。

最好的祝愿,蒂姆

于 2012-06-13T13:28:57.787 回答
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"
于 2012-06-13T13:28:46.163 回答