Вертикально центрировать текст в строке списка - PullRequest
6 голосов
/ 21 февраля 2012

Я пытаюсь сделать просмотр списка с текстом и изображением для каждой строки. Изображение должно быть справа, а текст должен занимать остальную часть строки. Текст должен быть по центру по вертикали. Я могу сделать все это, кроме центрированной части. Вот что у меня после многих неудачных попыток:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  android:id="@+id/widget71"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android" 
  android:gravity="center_vertical">
<TextView
  android:id="@android:id/text1"
  android:layout_width="wrap_content"
  android:layout_height="fill_parent"
  android:layout_marginTop="6px"
  android:textAppearance="?android:attr/textAppearanceLarge"
  android:text="@+id/text1"
  android:layout_weight="01"
  android:layout_gravity="center_vertical|fill_vertical|center_horizontal|center|clip_vertical"/>
<ImageView
  android:id="@android:id/icon"
  android:layout_width="30px"
  android:layout_height="40px"
  android:layout_marginTop="8px"
  android:layout_marginLeft="4px"
  android:layout_marginRight="8px"
  android:src="@drawable/delete"
  android:layout_gravity="right" />
</LinearLayout>

Независимо от того, какой текст всегда отображается в верхней части строки. Я уже видел некоторые сообщения, что это может произойти из-за того, как раздувается XML, когда это делается вручную. Но я этого не делаю. Я оставляю это в рамках.

Ответы [ 3 ]

9 голосов
/ 21 февраля 2012

Я использую RelativeLayout, который содержит TextView и ImageView.

Для обоих я использую атрибут android:layout_centerVertical="true". У меня отлично работает.

2 голосов
/ 21 февраля 2012

добавить это в textview

android:gravity="center_vertical"

или

android:gravity="center"
1 голос
/ 21 февраля 2012

Пользователь RelativeLayout вместо LinearLayout Установите fill_parent для TextView и wrap_content для ImageView.

...