第一种方式如下:
<?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>
作者:lfdfhl 发表于2013-3-3 17:09:59 原文链接
阅读:55 评论:0 查看评论