Ich verwende eine Listenansicht in Android 1.5, um eine Liste von Bildern und Text neben dem Bild anzuzeigen. Ich versuche, den Text vertikal zu zentrieren, aber der Text befindet sich an der Spitze der Zeile statt zentriert. Unten ist mein Layout:Wie richte ich ein Element in einer Liste mithilfe des relativen Layouts vertikal aus?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/row"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dip">
<ImageView android:id="@+id/item_image" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:paddingRight="10dip"
android:src="@drawable/default_image" android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_centerVertical="true"
android:gravity="center_vertical"/>
<TextView android:id="@+id/item_title"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_toRightOf="@id/item_image"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_centerVertical="true"
android:gravity="center_vertical"
/>
</RelativeLayout>
Es scheint seltsam, dass ich alignParentTop = „true“ festlegen müssen, wenn ich den Text vertikal zentriert versucht bin, aber wenn ich den Text nicht tun zeigt nicht einmal auf. Was mache ich falsch?
Danke für den Versuch. Ich möchte, dass das Layout nicht größer als das Bild ist, also ist das Bild in Ordnung.Ich habe dein XML ausprobiert und sehe das selbe, was ich mit meinem gesehen habe. Der Text wird nicht angezeigt, wenn ich nicht android: layout_alignParentTop = "true" zum TextView hinzufüge, und dann ist es natürlich top-gerecht anstatt zentriert. Hast du deine in einen ListView gesteckt? –
Hmm. Es funktionierte gut, wenn es eine eigene Ansicht war, aber als ich es zu einem ListView hinzufügte, dann ja, hörte es auf zu arbeiten. Ich habe gerade ein paar Dinge ausprobiert und nichts hat sich so gut bewährt wie mit RelativeLayout. Sie können den gleichen Effekt jedoch mit einem LinearLayout erzielen. Setzen Sie die Ausrichtung auf horizontal und stellen Sie die TextView-Höhe dann auf fill_parent mit center_vertical gravity ein. Wenn Sie mehrere TextViews neben dem Symbol haben möchten, können Sie sie in ein zweites vertikales LinearLayout einfügen. Das ist nicht elegant, aber ich kann nicht herausfinden, warum die RelativeLayouts nicht funktionierten ... –
Konnten Sie Ihre Antwort redigieren, um LinearLayout zu erwähnen? Das scheint zu funktionieren. –