Уровень мельче центру по вертикали
Я хочу сделать макет строки списка. Этот макет имеет графическое представление в самый левый, элемент TextView, рядом с книги, и книги в самый правый. Я хочу, чтобы все они были в центре вертикали.
<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 снизу с двумя imageview.
Я попробовал это в эмуляторе android 4.2.
Кто-нибудь может мне помочь в этом?
8 ответов:
я отредактировал ваш макет. Проверить этот код.
<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>
Если высота/ширина представления = wrap_content
использование:
android:layout_centerHorizontal="true" android:layout_centerVertical="true"
Если высота/ширина представления = match_parent
использование:
android:gravity="center_vertical|center_horizontal"
для меня, я должен был удалить
<item name="android:gravity">center_vertical</item>
С RelativeLayout, так что детская конфигурация будет работать:
<item name="android:layout_centerVertical">true</item>
попробуйте выровнять верхнюю и нижнюю часть текстового представления на один из значков, это сделает текстовый вид такой же высоты, как и они, а затем установите
gravity
tocenter_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>