如何为ListView创建自定义项

时间:2011-11-05 20:41:28

标签: java android

我为ListView制作了自定义.xml布局。现在它看起来:

Current state

但这并不好,因为我有固定的布局宽度(250px):

   <LinearLayout
      android:orientation="horizontal"
      android:layout_width="fill_parent"
      android:layout_height="250px">
            <ImageView
                android:background="#FFFFFF"
                android:layout_marginLeft="20px"
                android:layout_marginTop="25px" 
                android:layout_height="100px" 
                android:layout_width="100px" 
                android:id="@+id/imageView1" />
            <LinearLayout 
                android:id="@+id/linearLayout2" 
                android:layout_height="fill_parent" 
                android:layout_width="fill_parent" 
                android:orientation="vertical">
                <TextView
                    android:layout_marginTop="20px"
                    android:textStyle="bold"
                    android:textColor="#FF8C00" 
                    android:layout_marginLeft="20px"  
                    android:textAppearance="?android:attr/textAppearanceSmall" 
                    android:id="@+id/textViewFilmName" 
                    android:layout_width="wrap_content" 
                    android:text="TextView" 
                    android:layout_height="wrap_content" />
                <LinearLayout 
                    android:id="@+id/linearLayout1" 
                    android:layout_height="wrap_content"
                    android:orientation="horizontal" 
                    android:layout_width="fill_parent">
                    <TextView 
                        android:textAppearance="?android:attr/textAppearanceSmall" 
                        android:id="@+id/textView1" 
                        android:layout_width="wrap_content" 
                        android:text="Director:"
                        android:textStyle="bold" 
                        android:textColor="#FFFFFF" 
                        android:layout_marginLeft="20px" 
                        android:layout_marginTop="10px" 
                        android:layout_height="wrap_content" />
                    <TextView 
                        android:textAppearance="?android:attr/textAppearanceSmall" 
                        android:id="@+id/textViewDirector" 
                        android:layout_width="wrap_content"
                        android:layout_marginLeft="2px" 
                        android:text="TextView" 
                        android:layout_marginTop="10px" 
                        android:layout_height="wrap_content" />
                </LinearLayout>
                <LinearLayout 
                    android:id="@+id/linearLayout3" 
                    android:layout_height="wrap_content" 
                    android:layout_width="fill_parent">
                    <TextView 
                        android:textAppearance="?android:attr/textAppearanceSmall" 
                        android:id="@+id/textView2"
                        android:layout_marginTop="10px"
                        android:layout_marginLeft="20px"  
                        android:layout_width="wrap_content" 
                        android:text="Stars:"
                        android:textStyle="bold" 
                        android:textColor="#FFFFFF"  
                        android:layout_height="wrap_content" />
                    <TextView 
                        android:textAppearance="?android:attr/textAppearanceSmall" 
                        android:id="@+id/textViewStart" 
                        android:layout_width="wrap_content" 
                        android:text="TextView"
                        android:layout_marginLeft="2px"  
                        android:layout_marginTop="10px" 
                        android:layout_height="wrap_content" />
                </LinearLayout>
            </LinearLayout>  
    </LinearLayout>

如果我没有为root布局设置固定大小,那我就有类似的内容:

Bad state

此代码与之前的示例类似,但“fill_layout”上的“250px”已更改。如何为元素设置非固定大小,他将正确显示并填充所有行?谢谢

1 个答案:

答案 0 :(得分:2)

将最外层布局上的android:layout_height属性更改为&#34; wrap_content&#34;以及下一个LinearLayout(linearLayout2)。然后它会工作。