Android - TextView中的文本不会左/纵向对齐

时间:2014-05-23 08:47:07

标签: android android-layout textview alignment

好的,这是交易: 我有一个包含ImageView,TextView和IconTextView的列表。

TextView包含我想要垂直居中并紧贴TextView左侧的文本。但由于某种原因,它不适用于android:gravity =" center | left"也没有任何其他重力变化。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/task_item_item_layout"
    android:background="?android:attr/activatedBackgroundIndicator" >

    <ImageView
        android:id="@+id/task_item_imageview"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:src="@drawable/default_icon"
        android:contentDescription="TODO"
        android:paddingTop="5dp"
        android:paddingBottom="5dp"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:visibility="visible" />

    <TextView
        android:id="@+id/task_item_textview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true"
        android:text="TODO"
        android:textSize="15sp"
        android:layout_toLeftOf="@+id/task_item_icontextview"
        android:paddingLeft="4dp"
        android:paddingRight="8dp"
        android:paddingTop="10dp"
        android:paddingBottom="10dp"
        android:layout_toRightOf="@+id/task_item_imageview"
        android:gravity="center|left" />

    <IconTextView
        android:id="@+id/task_item_icontextview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingRight="10dp"
        android:visibility="gone"
        android:gravity="center_horizontal"
        android:layout_centerVertical="true"
        android:layout_alignParentRight="true" />

</RelativeLayout>

MinSDK = 14 目标并编译SDK = 19

我发现了很多潜在的答案,但是它们似乎没有用。 有什么想法吗?

溶液

我将layout_height改为android:layout_height =&#34; fill_parent&#34;并添加了android:layout_centerVertical =&#34; true&#34;像阿波罗夫说的那样。

<TextView
    android:id="@+id/task_item_textview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentTop="true"
    android:layout_alignParentBottom="true"
    android:text="Description"
    android:textSize="15sp"
    android:layout_toLeftOf="@+id/task_item_icontextview"
    android:paddingLeft="4dp"
    android:paddingRight="8dp"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"
    android:layout_toRightOf="@+id/task_item_imageview"
    android:gravity="center|left"
    android:layout_centerVertical="true"/>

像魅力一样工作!

1 个答案:

答案 0 :(得分:6)

尝试使用android:layout_centerVertical="true"中的TextView。目前您正在使用android:layout_height="wrap_content"因此TextView可能会粘贴到父布局的顶部。

因此,当您提供android:gravity="center|left"时,它会被应用但您没有看到任何差异,因为TextView的高度不会改变。

此外,您可以更改为android:layout_height="fill_parent",而不是使用android:layout_centerVertical="true"