2011-01-14 4 views
16

J'ai une ListView dans ma mise en page.Distance entre les éléments dans une Listview

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

Chaque liste de mise en page article ressemble à:

<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> 

Je veux avoir une distance entre tout l'article. Pour cela j'ai joué avec android: la propriété margin, mais sans succès.

Est-ce que quelqu'un sait, comment changer la distance entre les éléments dans une liste.

Merci,

Mur

+0

Distance entre chaque rangée? ou entre chaque élément qui apparaît dans une rangée? –

+0

entre chaque ligne = item de liste – Tima

Répondre

29

Vous pouvez toujours définir la propriété dividerHeight. Android Docs

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

Si ce n'est pas ce que vous voulez faire, dans votre élément listview vous pouvez envelopper votre LinearLayout dans un RelativeLayout et d'ajouter une marge au 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> 
+0

J'ai eu la même idée comme votre deuxième suggestion, mais votre premier m'aide et c'est plus beau :) Merci beaucoup – Tima

+3

Cela a fonctionné pour moi, sauf que ma liste est noir et le diviseur était gris. Assurez-vous de changer le diviseur à la même couleur que votre liste! android: divider = "# 00000" dans mon cas. – NPike

+1

@NPike, ou rendre le diviseur transparent aveC# 00000000 – softarn

0

Utiliser le rembourrage ou la marge ou ListView lui-même.

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

non, cela n'aide pas – Tima

0

Pour encrease la distance entre les éléments eux-même, vous pouvez utiliser

android:dividerHeight="xxdpi" 

Dans

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

Regarts, Marco

+0

avez-vous vu la réponse acceptée? – Tima

1

J'ai trouvé que le diviseur de ListView a des problèmes de fragmentation. Dans les périphériques 2.3, une ligne grise est implémentée par défaut et n'apparaît pas sur les périphériques 4.x. Cela peut être résolu en définissant manuellement android:divider="some_value". J'ai tendance à gérer tous les problèmes de mise en page des éléments ListView dans les mises en page des éléments eux-mêmes. C'est un petit truc sale, mais résout les problèmes de version croisée. Notez l'ajout d'une vue "cachée" ci-dessous. Cela ne résout pas seulement le problème entre les éléments, mais vous donne un rembourrage égal après le dernier élément de votre liste.

<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> 
Questions connexes