我正在使用Android 1.5中的列表視圖來顯示圖像旁邊的圖像和文本列表。我正在嘗試垂直居中文本,但文本位於行的頂部而不是居中。下面是我的佈局:如何使用相對佈局在列表中垂直對齊項目?
<?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>
這似乎很奇怪,我需要設置alignParentTop =「真」當我試圖垂直居中的文本,但如果我不文本甚至不露面。我究竟做錯了什麼?
感謝您的嘗試。我確實希望佈局不會高於圖像,所以圖像很好。我嘗試了你的xml,並且看到我用我的方式看到的同樣的東西。除非我向TextView添加android:layout_alignParentTop =「true」,否則文本不會顯示出來,然後當然是頂端對齊而不是居中。你把你的ListView放在裏面嗎? – 2010-03-16 13:05:32
嗯。當它是一個獨立的視圖時它工作得很好,但是當我將它添加到一個ListView然後是時,它停止工作。我剛剛嘗試了一些東西,沒有什麼能夠很好地解決它應該使用RelativeLayout的方式。儘管你可以使用LinearLayout來達到同樣的效果。將方向設置爲水平,然後使TextView高度變爲fill_parent,並使用center_vertical重力。如果你想在圖標旁邊有幾個TextView,那麼你可以把它們放在第二個垂直的LinearLayout中。這不是優雅的,但我不能解決爲什麼RelativeLayouts不工作... – 2010-03-16 14:17:13
你可以編輯你的答案提及LinearLayout?這似乎工作。 – 2010-03-17 01:26:07