Android 如何在列表视图中将文本视图作为标题居中对齐到imageview下方

Android 如何在列表视图中将文本视图作为标题居中对齐到imageview下方,android,android-layout,Android,Android Layout,我无法在listview中对齐imageview下方的文本。下面是我的代码 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravit

我无法在listview中对齐imageview下方的文本。下面是我的代码

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

    <ImageView 
            android:id="@+id/icon"
            android:layout_width="wrap_content"
            android:layout_height="50dp" />


    <TextView 
            android:id="@+id/name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/icon"
            android:layout_alignParentBottom="true"  
            android:gravity="center"
            android:singleLine="true"
            android:layout_marginLeft="20dp"
            android:textColor="@color/white"/>


</RelativeLayout>
不了解如何在imageview下居中显示文本。请帮助我解决此问题。

在文本视图更改中

android:layout_width="wrap_content" 

在文本视图中更改

android:layout_width="wrap_content" 

只需在TextView中使用该属性:

<TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/icon"
        android:layout_alignParentBottom="true"  
        android:layout_centerHorizontal="true"
        android:singleLine="true"
        android:textColor="@color/white" />

只需在TextView中使用该属性:

<TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/icon"
        android:layout_alignParentBottom="true"  
        android:layout_centerHorizontal="true"
        android:singleLine="true"
        android:textColor="@color/white" />

您应该使用线性布局来设置方向属性。将线性布局的方向设置为垂直,并将imageview属性设置为android:layout\u gravity=“center” 以下是完整的代码:

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_marginLeft="@dimen/activity_horizontal_margin"
        android:layout_marginRight="@dimen/activity_horizontal_margin"
        android:layout_marginTop="@dimen/activity_horizontal_margin"
        android:layout_marginBottom="@dimen/activity_horizontal_margin"
         >

        <ImageView
            android:id="@+id/grid_item_image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
           android:layout_gravity="center"
            android:src="@drawable/home" >
        </ImageView>

        <TextView
            android:id="@+id/grid_item_label"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Cardiology"
            android:layout_gravity="center"
            android:layout_marginTop="5px"
            android:textSize="20sp" >
        </TextView>

    </LinearLayout>


希望对您有所帮助。

您应该使用线性布局来设置方向属性。将线性布局的方向设置为垂直,并将imageview属性设置为android:layout\u gravity=“center” 以下是完整的代码:

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_marginLeft="@dimen/activity_horizontal_margin"
        android:layout_marginRight="@dimen/activity_horizontal_margin"
        android:layout_marginTop="@dimen/activity_horizontal_margin"
        android:layout_marginBottom="@dimen/activity_horizontal_margin"
         >

        <ImageView
            android:id="@+id/grid_item_image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
           android:layout_gravity="center"
            android:src="@drawable/home" >
        </ImageView>

        <TextView
            android:id="@+id/grid_item_label"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Cardiology"
            android:layout_gravity="center"
            android:layout_marginTop="5px"
            android:textSize="20sp" >
        </TextView>

    </LinearLayout>


希望能有所帮助

谢谢您的快速回复@Sam,但没有成功。文本仍向右对齐,未居中:(.我明白了,有两种选择:要么将您的RelativeLayout的宽度更改为
wrap\u content
,要么将您的ImageView的宽度更改为
match\u parent
。更改ImageView的宽度以匹配\u parent之后,它就可以工作了。非常感谢@Sam为您提供的宝贵帮助。没有问题,请单击我答案中的复选标记以显示此问题已解决。然后ks用于快速响应@Sam,但未成功。文本仍向右对齐,未居中:(.我明白了,有两种选择:要么将您的RelativeLayout的宽度更改为
wrap\u content
,要么将您的ImageView的宽度更改为
match\u parent
。更改ImageView的宽度以匹配父对象后,它就可以工作了。非常感谢@Sam提供的宝贵帮助。请单击我答案中的复选标记,以显示此问题已解决。