自定义ListView奇怪的行为

时间:2012-06-16 07:41:57

标签: android listview customization

大家。 我的自定义ListView

有一种奇怪的行为

enter image description here

ListView分隔符超过ListView。有人可以帮帮我吗?

这是我的布局文件:

    <?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >


    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:background="@color/back_button_color" >


        <TextView
            android:id="@+id/message_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="100dp"
            android:layout_marginTop="12dp"
            android:layout_weight="0.93"
            android:text="@string/messages"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="@color/light_gray" />




        <Button
            android:id="@+id/new_message_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="15dp"
            android:layout_marginTop="10dp"
            android:background="@color/back_button_color"
            android:drawableRight="@drawable/compose" />

    </LinearLayout>


    <ListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="left"
        android:listSelector="@drawable/dialog_list" >

    </ListView>

</LinearLayout>

和list_row文件:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@color/white_color" >


    <RelativeLayout
        android:id="@+id/relativeLayout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >



        <ImageView
            android:id="@+id/ava_image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:src="@drawable/ava_background" />





        <TextView
            android:id="@+id/time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_marginRight="5dp"
            android:layout_marginTop="10dp"
            android:text="TextView" />



        <TextView
            android:id="@+id/name_intelocutor"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:layout_toRightOf="@+id/ava_image"
            android:text="Medium Text"
            android:textAppearance="?android:attr/textAppearanceMedium" />



        <TextView
            android:id="@+id/message_body"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/name_intelocutor"
            android:layout_below="@+id/name_intelocutor"
            android:layout_marginTop="5dp"
            android:text="TextView" />







        <ImageView
            android:id="@+id/online_image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/name_intelocutor"
            android:layout_margin="5dp"
            android:layout_marginBottom="7dp"
            android:layout_marginLeft="10dp"
            android:layout_toRightOf="@+id/name_intelocutor"
            android:src="@drawable/online_list" />

    </RelativeLayout>


</LinearLayout>

1 个答案:

答案 0 :(得分:0)

您已将ListView的width属性提供给fill_parent。

<ListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:listSelector="@drawable/dialog_list" >

</ListView>

更改它以包装内容,

<ListView
    android:id="@+id/list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:listSelector="@drawable/dialog_list" >

</ListView>

更改 list_row.xml 中的边距和填充不会影响分隔符长度,因为它会认为您的列表占据了整个屏幕宽度。