2010-11-21 73 views
2

我有一個RelativeLayout包含兩個TextView s和一個ImageView的問題,我用它來顯示ListView中的項目。這些項目在Android 1.6上正確顯示,但在Android 2.2上,TextView重疊。重疊2.2中的RelativeLayout中的TextView項目; 1.6

這裏是顯示了正確和不正確的行爲並排側的圖像:

alt text

這裏是我的RelativeLayout的源代碼:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="?android:attr/listPreferredItemHeight" 
android:padding="6dip"> 

<ImageView 
    android:id="@+id/icon" 

    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 

    android:layout_alignParentTop="true" 
    android:layout_alignParentBottom="true" 
    android:layout_marginRight="6dip" 
    /> 

<TextView 
    android:id="@+id/secondLine" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 

    android:ellipsize="marquee" 
    android:singleLine="true" 

    android:layout_below="@+id/firstLine" 
    android:layout_toRightOf="@id/icon" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
/> 

<TextView 
    android:id="@+id/firstLine" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 

    android:textStyle="bold" 
    android:ellipsize="marquee" 
    android:singleLine="true" 

    android:layout_toRightOf="@id/icon" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
/> 

</RelativeLayout> 

任何想法我做錯了?

非常感謝,

菲利普

回答

6

這與Octavian的答案基本相同,但我不認爲他實際上解釋得很好。

您在XML文件中有矛盾的說法。您有:

android:layout_alignParentBottom="true" 

在您的兩個文本視圖中。您還有:

android:layout_below="@+id/firstLine" 

其中的一個textviews。本質上,你試圖對齊相對佈局的底部,然後試圖把它放在下面。沒有什麼「底部」。

刪除這個矛盾的邏輯,它應該可以解決你的問題。

+0

我設法用Octavian的答案來解決它。感謝您的廣泛解釋! – Philipp 2010-11-21 14:19:14

+0

它不會解決問題,因爲它不會那樣工作。當你像上面那樣定義視圖時,'layout_below'將被忽略。 – 2010-11-21 14:20:04

3

我不是100%肯定,如果這是問題,但在你的TextView與ID firstLine好像你正在調整它以它的父母底部喜歡你用TextView ID secondLine處理。我很確定你想說android:layout_alignParentTop="true"

我不明白它爲什麼在Android 1.6上工作,但不在2.2上。

+0

你釘了它,非常感謝!我沒有注意到這個錯誤。使用android:layout_alignParentTop =「true」而不是android:layout_alignParentBottom =「true」做了訣竅。 – Philipp 2010-11-21 14:12:58