RelativeLayout中心垂直

我想做一个列表行布局。 这个布局在左边最左边是一个imageview,右边是imageview旁边的一个textview,最右边是一个imageview。 我希望他们都是垂直的中心。

<RelativeLayout android:layout_width="fill_parent" android:layout_height="100dp" android:gravity="center_vertical" > <ImageView android:id="@+id/icon" android:layout_width="50dp" android:layout_height="50dp" android:layout_gravity="center_vertical" /> <TextView android:id="@+id/func_text" android:layout_toRightOf="@id/icon" android:layout_width="wrap_content" android:layout_height="100dp" android:layout_gravity="center_vertical" /> <ImageView android:layout_width="50dp" android:layout_height="50dp" android:layout_alignParentRight="true" android:layout_gravity="center_vertical" android:src="@drawable/arrow" /> </RelativeLayout> 

我也尝试添加android:layout_centerVertical="true"到textview,但结果是textview与两个imageviewalignment底部。 我在android 4.2模拟器中试过。 有人可以帮助我呢?

我编辑了你的布局。 现在检查这个代码。

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#33B5E5" android:padding="5dp" > <ImageView android:id="@+id/icon" android:layout_width="50dp" android:layout_height="50dp" android:layout_alignParentLeft="true" android:layout_centerInParent="true" android:background="@android:drawable/ic_lock_lock" /> <TextView android:id="@+id/func_text" android:layout_width="wrap_content" android:layout_height="100dp" android:layout_gravity="center_vertical" android:layout_toRightOf="@+id/icon" android:gravity="center" android:padding="5dp" android:text="This is my test string............" android:textColor="#FFFFFF" /> <ImageView android:layout_width="50dp" android:layout_height="50dp" android:layout_alignParentRight="true" android:layout_centerInParent="true" android:layout_gravity="center_vertical" android:src="@android:drawable/ic_media_next" /> </RelativeLayout> 

使用

  android:layout_centerVertical="true" 

对我来说,我不得不删除

 <item name="android:gravity">center_vertical</item> 

RelativeLayout ,所以儿童的configuration将工作:

 <item name="android:layout_centerVertical">true</item> 

如果视图的高度/宽度= wrap_content – >使用:

 android:layout_centerHorizontal="true" android:layout_centerVertical="true" 

如果视图的高度/宽度= match_parent – >使用:

 android:gravity="center_vertical|center_horizontal" 

尝试将文本视图的顶部和底部alignment到其中一个图标,这将使文本视图与它们共享相同的高度,然后将gravity设置为center_vertical以使文本视图中的文本垂直居中。

 <TextView android:id="@+id/func_text" android:layout_toRightOf="@id/icon" android:layout_alignTop="@id/icon" android:layout_alignBottom="@id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical" /> 

这是为我工作。

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/rell_main_bg" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#096d74" > <ImageView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_centerVertical="true" android:layout_centerHorizontal="true" android:src="@drawable/img_logo_large" android:contentDescription="@null" /> </RelativeLayout> 

这可能是因为textview太高了。 将textview的android:layout_height更改为wrap_content或使用

 android:gravity="center_vertical"