2011-04-01 125 views
2

我不完全得到我的列表視圖項目的佈局並不像我想要的那樣。 我希望somone會給我一些提示,因爲我現在不能使它工作一段時間。 我要的是如下:Android自定義ListViewItem佈局

enter image description here

這裏是我的方法:

<?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="20dip" 
android:padding="6dip"> 
<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="3dip"> 
     <TextView 
      android:id="@+id/nametext" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
     /> 
</LinearLayout> 
<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="7dip"> 
     <ImageView 
      android:id="@+id/photo" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_marginRight="6dip" 
      android:src="@drawable/icon" /> 
     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="0dip" 
      android:layout_weight="1" 
      android:layout_height="fill_parent"> 
      <TextView 
       android:id="@+id/toptext" 
       android:layout_width="fill_parent" 
       android:layout_height="0dip" 
       android:layout_weight="1" 
       android:gravity="center_vertical" 
      /> 
      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="0dip" 
       android:layout_weight="1" 
       android:id="@+id/middletext" 
       android:singleLine="true" 
       android:ellipsize="marquee" 
      /> 
      <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> 
     <ImageView 
      android:id="@+id/stars" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_marginLeft="6dip" 
      android:src="@drawable/icon" /> 
</LinearLayout> 

任何幫助,將不勝感激。 我已經嘗試了不同的尺寸和RelativeLayout。不用找了。 它看起來不像我認爲它應該。

編輯3個空白失蹤

EDIT2加入PIC

+0

對不起。整個XML代碼在文本中,但它不會顯示。請任何人都可以編輯,改變這一點,我不知道如何。看到完整的xml使用編輯模式。對造成的不便表示歉意。 – GuyFawkes 2011-04-01 15:05:48

回答

5

您可以用LinearLayouts做到這一點,但你需要三個嵌套佈局:

  1. 垂直的LinearLayout包含一切。
  2. 從標題含有一切一邊的水平的LinearLayout。
  3. 含有非標題TextViews垂直的LinearLayout。

內部垂直LinearLayout可能需要android:layout_weight="1",因此它會伸展以填充可用空間,但不會擠出右側ImageView。

這一切都非常昂貴,特別是當乘以ListView中的衆多視圖時。一個RelativeLayout可以只用一個佈局完成。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:padding="6dip" > 
    <TextView 
     android:id="@+id/textView1" 
     android:layout_alignParentTop="true" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_vertical|center_horizontal" 
     android:textSize="40sp"> 
    </TextView> 
    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_below="@+id/textView1" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/icon" > 
    </ImageView> 
    <ImageView 
     android:id="@+id/imageView2" 
     android:layout_below="@+id/textView1" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/icon" > 
    </ImageView> 
    <TextView 
     android:id="@+id/textView2" 
     android:layout_below="@+id/textView1" 
     android:layout_toRightOf="@+id/imageView1" 
     android:layout_toLeftOf="@+id/imageView2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:text="TextView" > 
    </TextView> 
    <TextView 
     android:id="@+id/textView3" 
     android:layout_below="@+id/textView2" 
     android:layout_toRightOf="@+id/imageView1" 
     android:layout_toLeftOf="@+id/imageView2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:text="TextView" > 
    </TextView> 
    <TextView 
     android:id="@+id/textView4" 
     android:layout_below="@+id/textView3" 
     android:layout_toRightOf="@+id/imageView1" 
     android:layout_toLeftOf="@+id/imageView2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:text="TextView" > 
    </TextView> 
</RelativeLayout> 

編輯的格式,並添加

這是結果。當然,文本和圖像大小需要調整,但基本結果是你所描述的。

ListView screenshot

+0

我同意這個解決方案 – 2red13 2011-04-01 16:42:32

+0

非常感謝。正是我需要的。 – GuyFawkes 2011-04-05 08:18:48

0

林不知道,如果你真的想有一個3dip標題和內容7dip ... 如果你想外的LinearLayout裏面的東西垂直排列,在父LinearLayout中使用

android:orientation="vertical" 

。要將三個項目排列在佈局的內容部分中,可以使用android:weight或android:alignParentLeft/Right。

我怕林不知道你想做的事啥子,所以我不能編輯自己的佈局:(

+0

嗨紅。首先感謝編輯。我會添加一張圖片來顯示我想要的內容。是的我知道。所有像素值都是隨機的。我擺弄了很多。給我一點時間做一點點。 – GuyFawkes 2011-04-01 15:26:42