RelativeLayout центр вертикальный

Я хочу создать макет строки списка. Этот макет имеет изображение в самом левом, текстовое окно рядом с изображением и изображение в самом правильном. Я хочу, чтобы все они были вертикальными по центру.

<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, но результатом является выравнивание текста в нижней части с двумя изображениями. Я пробовал это в эмуляторе android 4.2. Кто-нибудь может мне помочь?

Solutions Collecting From Web of "RelativeLayout центр вертикальный"

Я отредактировал ваш макет. Проверьте этот код сейчас.

 <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 , поэтому детальная конфигурация будет работать:

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

Попробуйте совместить верхнюю и нижнюю части текстового вида с одним из значков, это сделает просмотр текста одинаковым по высоте по высоте, а затем установите значение 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" /> 

Если View height / width = wrap_content -> use:

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

Если View height / width = match_parent -> use:

 android:gravity="center_vertical|center_horizontal" 

Это работает на меня.

 <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> 

Возможно, это связано с тем, что текст слишком высок. Измените android: layout_height textview на wrap_content или используйте

 android:gravity="center_vertical"