2 zhenglingkun zhenglingkun 于 2013.04.28 10:09 提问

listview的item如何让它自适应内容的高

想实现listview中当一个内容多的时候,item的高度能充满屏幕,或者超过屏幕,内容少的时候,一屏可以显示多个item,如何才能让item自适应呢?
下面是我的item布局,大家帮忙看看:

<?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="match_parent"
    android:orientation="horizontal" >

    <FrameLayout
        android:id="@+id/main_item_frameLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="4dp"
        android:layout_marginTop="10dp" >

        <ImageView
            android:id="@+id/imageHead"
            android:layout_width="@dimen/wb_head_image"
            android:layout_height="@dimen/wb_head_image" />

        <ProgressBar
            android:id="@+id/main_item_progress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:indeterminate="false"
            android:indeterminateDrawable="@anim/loading"
            android:visibility="gone" />
    </FrameLayout>

    <LinearLayout
        android:id="@+id/main_item_linearLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@id/main_item_frameLayout"
        android:orientation="vertical" >

        <RelativeLayout
            android:id="@+id/relativeLayout1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical" >

            <TextView
                android:id="@+id/name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:paddingLeft="10dp"
                android:paddingTop="10dp"
                android:textSize="18sp" />

            <TextView
                android:id="@+id/time"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:paddingRight="10dp"
                android:paddingTop="10dp"
                android:textColor="@color/yellow"
                android:textSize="15sp" />
        </RelativeLayout>

        <LinearLayout
            android:id="@+id/main_item_content_linearLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/content"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                android:textSize="20sp"
                android:textStyle="bold" />

            <GridView
                android:id="@+id/main_item_pictures"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:numColumns="3"
                android:scrollbars="none" >
            </GridView>

        </LinearLayout>


        <RelativeLayout
            android:id="@+id/relativeLayout2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp" >

            <TextView
                android:id="@+id/comment"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentRight="true"
                android:paddingBottom="10dp"
                android:paddingRight="10dp"
                android:textSize="12sp" />

            <ImageView
                android:id="@+id/imageView4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_toLeftOf="@id/comment"
                android:paddingBottom="10dp"
                android:src="@drawable/weibo_comment" />

            <TextView
                android:id="@+id/transmit"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_toLeftOf="@id/imageView4"
                android:paddingBottom="10dp"
                android:paddingRight="10dp"
                android:textSize="12sp" />

            <ImageView
                android:id="@+id/imageView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_toLeftOf="@id/transmit"
                android:paddingBottom="10dp"
                android:src="@drawable/weibo_transmit" />

            <TextView
                android:id="@+id/praise"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_toLeftOf="@id/imageView3"
                android:paddingBottom="10dp"
                android:paddingRight="10dp"
                android:textSize="12sp" />

            <ImageView
                android:id="@+id/imageView5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_toLeftOf="@id/praise"
                android:paddingBottom="10dp"
                android:src="@drawable/weibo_transmit" />
        </RelativeLayout>
    </LinearLayout>

</RelativeLayout>

2个回答

huzgd
huzgd   2013.04.29 16:38

把第4行第一个RelativeLayout的android:layout_height="match_parent"改成android:layout_height="wrap_content"就可以了。

boylinux
boylinux   2013.04.28 12:53
<?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="match_parent"
    android:orientation="horizontal" >

使用wrap_content,试试。。。
建议:在布局里面,不要设计太复杂的多种布局,防止异常;可以多重使用LinearLayout实现效果

suannai0314
suannai0314 帮你编辑了下代码的格式,更多markdown使用方法见:http://ask.csdn.net/pages/markdown
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!