Listview 中项目之间的距离

Posted

技术标签:

【中文标题】Listview 中项目之间的距离【英文标题】:Distance between items in a Listview 【发布时间】:2011-01-14 13:27:36 【问题描述】:

我的布局中有一个 ListView。

    <ListView 
        android:id="@+id/list_infoitems"
        android:layout_
        android:layout_/>

每个列表项布局如下:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:orientation="vertical"
    android:background="@drawable/selector_custombutton"
    android:padding="10dp"
    android:layout_gravity="center">
    <TextView
        android:id="@+id/text_history_station_name"
        android:layout_
        android:layout_
        android:gravity="center_vertical|left"
        android:textColor="@color/rnv_blue_540c"/>
    <TextView
        android:id="@+id/text_history_line_id"
        android:layout_
        android:layout_
        android:gravity="center_vertical|left"
        android:textColor="@color/rnv_blue_540c"/>      
</LinearLayout>

我想在所有项目之间保持距离。为此,我使用了 android:margin 属性,但没有成功。

有谁知道,如何改变列表视图中项目之间的距离。

谢谢,

穆尔

【问题讨论】:

每行之间的距离?还是在连续出现的每个项目之间? 【参考方案1】:

您始终可以设置 dividerHeight 属性。 Android Docs

<ListView 
    android:id="@+id/list"
    android:layout_
    android:layout_
    android:dividerHeight="5dp"
/>

如果这不是您想要做的,在您的列表视图项目中,您可以将您的 LinearLayout 包装在 RelativeLayout 中并为 LinearLayout 添加边距

<RelativeLayout
    android:layout_
    android:layout_>
    <LinearLayout
        android:id="@+id/list"
        android:layout_
        android:layout_
        android:layout_marginTop="5dp"
        android:layout_marginBottom="5dp"
    />
</RelativeLayout>

【讨论】:

我和你的第二个建议有同样的想法,但你的第一个对我有帮助,而且更好:) 非常感谢 这对我有用,只是我的列表是黑色的,分隔线是灰色的。确保将分隔线更改为与列表相同的颜色! android:divider="#00000" 在我的例子中。 @NPike,或者使用 #00000000 使分隔线透明【参考方案2】:

我发现 ListView 分隔线存在碎片问题。在 2.3 设备中,默认情况下实现了一条灰线,而在 4.x 设备上不显示。这可以通过手动设置android:divider="some_value" 来解决。我倾向于在项目布局本身中处理所有 ListView 项目布局问题。这是一个肮脏的小技巧,但解决了跨版本问题。请注意下面添加的“隐藏”视图。这不仅解决了项目之间的问题,而且在列表中的最后一项之后为您提供了相等的填充。

<RelativeLayout
    android:layout_
    android:layout_>

    <LinearLayout
        android:id="@+id/list"
        android:layout_
        android:layout_
        android:layout_marginTop="5dp" />

    <View
        android:below="@id/list"
        android:layout_
        android:layout_
        android:margin_top="5dp" />
</RelativeLayout>

【讨论】:

【参考方案3】:

使用填充或边距或 ListView 本身。

<ListView 
        android:id="@+id/list_infoitems"
        android:layout_
        android:layout_
        android:padding="5px"
/>

【讨论】:

【参考方案4】:

为了增加他们自己可以使用的项目之间的距离

android:dividerHeight="xxdpi"

<ListView 
    android:id="@+id/list_infoitems"
    android:layout_
    android:layout_
    android:dividerHeight="xxdpi"/>

问候, 马可

【讨论】:

以上是关于Listview 中项目之间的距离的主要内容,如果未能解决你的问题,请参考以下文章

Listview中项目之间的无用间隙颤动

项目之间具有特定间距的 ListView

如何使用更改侦听器 JavaFX 在两个 ListView 之间移动项目

如何ListView依照GPS距离排序

Qml ListView动态高度项过渡

listview相关代码整理