读书人

ListView中Item格局示例二

发布时间: 2013-03-06 16:20:31 作者: rapoo

ListView中Item布局示例二

第一种方式如下:

<?xml version="1.0" encoding="utf-8"?><!-- 方式一 --><!--   需求:在ListView显示时每个Item的上下左右都有一定的空白距离.尤其是在垂直方向的 每个Item保持了一定的距离.所以可以通过对ListView的Item布局设置整体的margin来实现--><!-- 错误的解决方式: 在最外层LinearLayout又嵌套了一层LinearLayout.然后在新嵌套的 LinearLayout中设置margin,这样是没有效果的. 因为它本来就是最外层了 该问题可参见:http://blog.csdn.net/lfdfhl/article/details/8631087--><!--在该例子中主要使用了android:layout_weight="6"这个属性,参见:http://blog.csdn.net/lfdfhl/article/details/8230049所以会优先计算 android:id="@+id/news_item_arrow"控件的大小.在给其赋予了wrap_content的宽度后才将余下的宽度赋予android:id="@+id/linearLayout"控件--><!-- 正确的解决方式: 在最外层LinearLayout又嵌套了一层RelativeLayout,使之成为最外层. 然后在原最外层LinearLayout中设置margin.代码如下:--><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:background="@android:color/transparent" >    <LinearLayout        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_margin="20dip"        android:background="@android:color/white"        android:orientation="horizontal"        android:paddingTop="10dip" >        <LinearLayout            android:id="@+id/linearLayout"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="6"            android:orientation="vertical" >            <TextView                android:id="@+id/news_item_date"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:ellipsize="end"                android:paddingLeft="5dip"                android:text="2013/03/01"                android:textSize="10sp" >            </TextView>            <TextView                android:id="@+id/news_item_content"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:maxLines="4"                android:paddingLeft="20dip"                android:textSize="20sp" >            </TextView>        </LinearLayout>        <ImageView            android:id="@+id/news_item_arrow"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="center_vertical"            android:layout_marginLeft="10dip"            android:layout_marginRight="10dip"            android:layout_weight="1"            android:src="@drawable/arrow" />    </LinearLayout></RelativeLayout>


第二种方式如下:

<?xml version="1.0" encoding="utf-8"?><!-- 方式二 --><!-- 在控件android:id="@+id/news_item_content"中设置android:paddingLeft="20dip"比设置android:layout_marginLeft=""的效果要好得多 --><!-- 在控件android:id="@+id/news_item_arrow"中设置android:layout_alignParentRight="true"android:layout_centerVertical="true"从而使其垂直居中.这样的处理方式比方式(一)中要好许多.当然这里采用了相对布局 --><RelativeLayout     xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:background="@android:color/transparent"    >    <RelativeLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_margin="20dip"        android:background="@android:color/black" >        <TextView            android:id="@+id/news_item_date"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:paddingTop="8dip"            android:paddingLeft="5dip"            android:text="2013/03/01"            android:textSize="10sp" >        </TextView>        <TextView            android:id="@+id/news_item_content"            android:layout_width="240dip"            android:layout_height="wrap_content"            android:layout_marginTop="20dip"            android:maxLines="4"            android:paddingBottom="10dip"            android:paddingLeft="20dip"            android:textSize="20sp" >        </TextView>        <ImageView            android:id="@+id/news_item_arrow"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_alignParentRight="true"            android:layout_centerVertical="true"            android:layout_marginRight="10dip"            android:src="@drawable/arrow" />    </RelativeLayout></RelativeLayout>


ListView中Item格局示例二

读书人网 >移动开发

热点推荐