Android自定义ListViewItem布局
我不完全得到我的列表视图项目的布局并不像我想要的那样。 我希望somone会给我一些提示,因为我现在不能使它工作一段时间。 我要的是如下:Android自定义ListViewItem布局
这里是我的方法:
<?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
您可以用LinearLayouts做到这一点,但你需要三个嵌套布局:
- 垂直的LinearLayout包含一切。
- 从标题含有一切一边的水平的LinearLayout。
- 含有非标题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>
编辑的格式,并添加:
这是结果。当然,文本和图像大小需要调整,但基本结果是你所描述的。
林不知道,如果你真的想有一个3dip标题和内容7dip ... 如果你想外的LinearLayout里面的东西垂直排列,在父LinearLayout中使用
android:orientation="vertical"
。要将三个项目排列在布局的内容部分中,可以使用android:weight或android:alignParentLeft/Right。
我怕林不知道你想做的事啥子,所以我不能编辑自己的布局:(
嗨红。首先感谢编辑。我会添加一张图片来显示我想要的内容。是的我知道。所有像素值都是随机的。我摆弄了很多。给我一点时间做一点点。 – GuyFawkes 2011-04-01 15:26:42
对不起。整个XML代码在文本中,但它不会显示。请任何人都可以编辑,改变这一点,我不知道如何。看到完整的xml使用编辑模式。对造成的不便表示歉意。 – GuyFawkes 2011-04-01 15:05:48