2012-11-07 86 views
1

我正在使用我的自定義列表的行佈局。在這個佈局中,我有一個圖像在左邊和右邊的兩個文本框在對方的頂部。我希望將頂部文本框分成兩部分。就像這樣:佈局問題與自定義listitem

------------------------------- 
| | Topleft | Topright | 
|ICON|------------------------- 
| | bottom    | 
------------------------------- 

我已經有這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 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="fill_parent" 
     android:layout_marginRight="6dip" 
     android:src="@drawable/ic_launcher" /> 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="0dip" 
     android:layout_weight="1" 
     android:layout_height="fill_parent"> 

     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="0dip" 
      android:layout_weight="1"> 

     <TextView 
      android:id="@+id/toptext" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:gravity="center_vertical" 
     /> 
     <TextView 
      android:id="@+id/toptext2" 
      android:layout_width="0dip" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:gravity="center_vertical" 
     /> 
     </LinearLayout> 
     <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="0dip" 
      android:layout_weight="1" 
      android:id="@+id/bottomtext" 
      android:singleLine="true" 
      android:ellipsize="marquee" 
     /> 
    </LinearLayout> 
</LinearLayout> 

但是,這是行不通的。我只用一個toptext而不是兩個工作。任何人都可以告訴我我做錯了什麼?

回答

1

只需將LinearLayout的orientationtopTexttopText2更改爲"horizontal"即可。由於"horizontal"是默認的方向,你可以刪除整個屬性:如果你是不是在你的TextViews使用長字符串

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="0dip" 
    android:layout_weight="1"> 

但是,您可能能夠使用一個RelativeLayout的而不是三個LinearLayouts。

+0

謝謝,這確實是工作。你爲什麼強烈推薦RelativeLayout? – Siddler

+0

寫作後,我只注意到了'layout_weight'的大量使用...但是您可以使用1個RelativeLayout而不是3個LinearLayout來實現相同的結果,這完全取決於您在每個TextView中放置的文本的長度。 – Sam