Sto utilizzando una visualizzazione elenco in Android 1.5 per mostrare un elenco di immagini e testo accanto all'immagine. Sto provando a centrare verticalmente il testo, ma il testo è in cima alla riga anziché al centro. Qui di seguito è il mio layout:Come allineare verticalmente un elemento all'interno di un elenco utilizzando il layout relativo?
<?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>
Sembra strano che ho bisogno di impostare alignParentTop = "true" quando sto cercando di centrare il testo in verticale, ma se lo faccio non il testo non ha nemmeno vedere. Che cosa sto facendo di sbagliato?
Grazie per aver provato. Voglio che il layout non sia più alto dell'immagine, quindi l'immagine va bene.Ho provato il tuo xml e ho visto la stessa cosa che vedevo con la mia. Il testo non viene visualizzato a meno che non aggiungo android: layout_alignParentTop = "true" a TextView, e quindi ovviamente è in alto giustificato invece che centrato. Hai messo il tuo all'interno di un ListView? –
Hmm. Ha funzionato bene quando era una vista a sé stante, ma quando l'ho aggiunto a un ListView allora sì, ha smesso di funzionare. Ho appena provato alcune cose e nulla ha funzionato nel modo in cui avrebbe dovuto utilizzare RelativeLayout. Tuttavia, puoi ottenere lo stesso effetto usando un LinearLayout. Imposta l'orientamento su orizzontale e quindi imposta l'altezza di TextView su fill_parent, con gravità center_vertical. Se si desidera avere più TextView accanto all'icona, è possibile inserirle in un secondo LinearLayout verticale. Non è elegante, ma non riesco a capire perché i RelativeLayout non funzionassero ... –
Potresti modificare la tua risposta per menzionare LinearLayout? Sembra funzionare. –