【问题标题】:custom ListView strange behavoiur自定义 ListView 的奇怪行为
【发布时间】:2012-06-16 07:41:56
【问题描述】:

每个人。 我的自定义ListView有一个奇怪的行为@

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>

【问题讨论】:

    标签: android listview customization


    【解决方案1】:

    您已将 ListView 的宽度属性提供给 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 中的边距和内边距不会影响分隔线长度,因为它认为您的列表占据了整个屏幕宽度。

    【讨论】:

    • 感谢您的回复,但将 layout_width 更改为 wrap_content 会得到相同的结果。
    • 你真的需要显示分隔符吗?如果你愿意,你可以删除它。
    • 如果我删除分隔线 ListView 仍然不能填满屏幕宽度
    • 您是否尝试从您的列表视图中删除此属性 android:layout_gravity="left"?
    • 再次感谢您的回复。我找到了解决方案。问题出在android:listSelector="@drawable/dialog_list",如果将其移至行布局程序可以正常工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多