Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

ListView中Item布局示例二

$
0
0

第一种方式如下:

<?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 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>