Расстояние между элементами в ListView - PullRequest
17 голосов
/ 14 января 2011

У меня есть ListView в моем макете.

    <ListView 
        android:id="@+id/list_infoitems"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>

Каждый элемент списка выглядит следующим образом:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    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_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_vertical|left"
        android:textColor="@color/rnv_blue_540c"/>
    <TextView
        android:id="@+id/text_history_line_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_vertical|left"
        android:textColor="@color/rnv_blue_540c"/>      
</LinearLayout>

Я хочу иметь расстояние между всеми предметами. Для этого я играл с android: свойство margin, но безуспешно.

Кто-нибудь знает, как изменить расстояние между элементами в списке.

Спасибо,

Mur

Ответы [ 4 ]

32 голосов
/ 14 января 2011

Вы всегда можете установить свойство dividerHeight. Документы для Android

<ListView 
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:dividerHeight="5dp"
/>

Если это не то, что вы хотите сделать, в вашем элементе списка вы можете заключить свой LinearLayout в RelativeLayout и добавить поле в LinearLayout

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="5dp"
    />
</RelativeLayout>
1 голос
/ 01 октября 2012

Я обнаружил, что у делителя ListView есть проблемы фрагментации.В устройствах 2.3 по умолчанию реализована серая линия, которая не отображается на устройствах 4.x.Эту проблему можно решить, установив вручную android:divider="some_value".Я склонен решать все вопросы макета элементов ListView в самих макетах элементов.Это маленький грязный трюк, но решает проблемы кросс-версии.Обратите внимание на добавление «скрытого» вида ниже.Это не только устраняет проблему между элементами, но и дает вам одинаковое заполнение после последнего элемента в вашем списке.

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <LinearLayout
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="5dp" />

    <View
        android:below="@id/list"
        android:layout_height="0dp"
        android:layout_width="0dp"
        android:margin_top="5dp" />
</RelativeLayout>
0 голосов
/ 02 февраля 2012

Чтобы увеличить расстояние между собой, вы можете использовать

android:dividerHeight="xxdpi"

In

<ListView 
    android:id="@+id/list_infoitems"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:dividerHeight="xxdpi"/>

Regarts, Marco

0 голосов
/ 14 января 2011

Используйте отступы или Margin или сам ListView.

<ListView 
        android:id="@+id/list_infoitems"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5px"
/>
...