重力集,但TextView内容不居中

时间:2013-12-20 10:27:06

标签: android android-layout

enter image description here

布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center">

    <Button
        android:id="@+id/removeButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:paddingBottom="10dp"
        android:paddingTop="10dp"
        android:drawableRight="@drawable/ic_action_next_item"
        android:onClick="onClick"
        android:gravity="center_horizontal"
        android:focusable="false"
        android:clickable="false">
    </Button>

    <TextView
        android:id="@+id/list_item"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@id/removeButton"
        android:layout_alignBottom="@id/removeButton"
        android:layout_alignTop="@id/removeButton"
        android:gravity="center_vertical|left"
        android:paddingLeft="8dp"
        android:text="test"
        android:background="#e9e9e9"
        android:textColor="@color/very_light_grey"
        android:textSize="19sp"
        android:textStyle="bold" />

</RelativeLayout>

正如您所见,文本视图已

android:gravity="center|left"

设置但文本不是垂直居中(在设备上,但在gui编辑器中居中)。相反,它会粘在文本视图的左上角。有关如何垂直居中文本的任何想法吗?

5 个答案:

答案 0 :(得分:1)

尝试以下,这在我身边工作正常

   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center" >

    <Button
        android:id="@+id/removeButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:drawableRight="@drawable/ic_launcher"
        android:gravity="center_horizontal" >
    </Button>

    <TextView
        android:id="@+id/list_item"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@id/removeButton"
        android:background="#e9e9e9"
        android:layout_alignBottom="@id/removeButton"
        android:layout_alignTop="@id/removeButton"
        android:gravity="center_vertical"
        android:textColor="#000000"
        android:text="testing" />

</RelativeLayout>

以下是我的输出:

enter image description here


虽然这个答案指出了我必须在文本视图中添加包装线性布局的正确方法:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@id/removeButton"
    android:layout_alignTop="@id/removeButton"
    android:layout_toLeftOf="@id/removeButton"
    android:gravity="center"
    android:orientation="vertical" >
通过这种方式,我可以使它发挥作用。

答案 1 :(得分:0)

试试这个

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <Button
        android:id="@+id/removeButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:background="@drawable/ic_launcher"
        android:gravity="center_horizontal">
    </Button>

    <TextView
        android:id="@+id/list_item"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_toLeftOf="@+id/removeButton"
        android:layout_alignBottom="@+id/removeButton"
        android:layout_alignTop="@+id/removeButton"
        android:gravity="center_vertical|left"
        android:paddingLeft="8dp"
        android:background="#e9e9e9" 
        android:text="hello"/>

</RelativeLayout>

这是输出的截图

enter image description here

答案 2 :(得分:0)

如果你写android:gravity="center"

center|left是正确的。它会将你的文字留在左边。

答案 3 :(得分:0)

尝试将TextView重力设置为center_vertical,如下所示,然后检查

 <TextView
    android:id="@+id/list_item"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@id/removeButton"
    android:background="#e9e9e9"
    android:layout_alignBottom="@id/removeButton"
    android:layout_alignTop="@id/removeButton"
    android:gravity="center_vertical"
    android:text="asdfjhasdfkjhkjashdfjhljh" />

答案 4 :(得分:0)

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <Button
        android:id="@+id/removeButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:background="@drawable/ic_launcher"
        android:gravity="center_horizontal">
    </Button>

    <TextView
        android:id="@+id/list_item"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@id/removeButton"
        android:layout_alignBottom="@id/removeButton"
        android:layout_alignTop="@id/removeButton"
        android:gravity="center|left"
        android:text="@string/app_name"
        android:paddingLeft="8dp"
        android:background="#e9e9e9" />

</RelativeLayout>