389 Stimmen

Wie man den Abstand zwischen listView-Elementen in Android einstellt

Ich habe versucht, marginBottom auf der listView verwenden, um Platz zwischen listView Element zu machen, aber immer noch die Elemente sind zusammen angehängt.

Ist das überhaupt möglich? Wenn ja, gibt es einen bestimmten Weg, dies zu tun?

Mein Code lautet wie folgt

<LinearLayout
android:id="@+id/alarm_occurences"
android:layout_width="fill_parent" 
android:orientation="vertical"
android:layout_height="fill_parent"
android:background="#EEEEFF"
xmlns:android="http://schemas.android.com/apk/res/android">

<ListView
android:id="@+id/occurences"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>

Mein benutzerdefinierter Listeneintrag:

<com.android.alarm.listItems.AlarmListItem
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" 
android:background="@drawable/alarm_item_background"
android:layout_marginBottom="10dp"    
>
<CheckedTextView     
    android:id="@android:id/text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:textSize="20sp"
    android:textStyle="bold"
    android:typeface="serif"
    android:padding="10dp"

/>

</com.android.alarm.listItems.AlarmListItem>

Wie kann ich in diesem Fall Abstände zwischen den Listenelementen schaffen?

10voto

Sagar Pawar Punkte 405

Für meine Anwendung habe ich folgendes getan

 <ListView
    android:id="@+id/staff_jobassigned_listview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:divider="@null"
    android:dividerHeight="10dp">

</ListView>

nur set the divider to null und die Erhöhung der Trennwand hat mir geholfen.

Beispiel:

android:divider="@null"

oder

android:divider="@android:color/transparent"

und dies ist Ergebnis

enter image description here

0 Stimmen

Ich denke, besser ist android:divider="@android:color/transparent" .

7voto

LionKing Punkte 725

Wenn Sie eine Trennwand mit Rändern und ohne Dehnung anzeigen möchten, verwenden Sie InsetDrawable (die Größe muss in einem Format angegeben werden, über das @Nik Reiman sagte):

ListView:

<ListView
    android:id="@+id/listView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:cacheColorHint="#00000000"
    android:divider="@drawable/separator_line"
    android:dividerHeight="10.0px"/>

@drawable/separator_line:

<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:insetLeft="5.0px"
    android:insetRight="5.0px"
    android:insetTop="8.0px"
    android:insetBottom="8.0px">

    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <gradient
            android:startColor="@color/colorStart"
            android:centerColor="@color/colorCenter"
            android:endColor="@color/colorEnd"
            android:type="linear"
            android:angle="0">
        </gradient>
    </shape>
</inset>

7voto

mspapant Punkte 1749

Sie können verwenden:

android:divider="@null"
android:dividerHeight="3dp"

Beispiel:

<ListView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/listView" android:layout_gravity="center_horizontal"
        android:dividerHeight="3dp"
        android:divider="@null" android:clickable="false"/>

0 Stimmen

Die Kombination von Null mit Layout der Listenelemente erzielt die beste Wirkung

5voto

Tim Severeijns Punkte 668

Mir ist klar, dass bereits eine Antwort ausgewählt wurde, aber ich wollte nur mitteilen, was bei mir letztendlich funktionierte, als ich auf dieses Problem stieß.

Ich hatte eine listView, bei der jeder Eintrag in der listView durch ein eigenes Layout definiert war, ähnlich wie bei Sammys Frage. Ich versuchte den vorgeschlagenen Ansatz, die Höhe der Trennlinie zu ändern, aber das sah nicht besonders schön aus, auch nicht mit einer unsichtbaren Trennlinie. Nach einigen Experimenten fügte ich einfach ein android:paddingBottom="5dip" zum letzten TextView-Layoutelement in der XML-Datei, die einzelne listView-Einträge definiert.

Damit habe ich genau das erreicht, was ich mit der Verwendung von android:layout_marginBottom . Ich fand, dass diese Lösung zu einem ästhetisch ansprechenderen Ergebnis führte als der Versuch, die Höhe der Trennwand zu erhöhen.

3voto

Rahul Raina Punkte 3121

Anstelle einer Marge sollten Sie eine Polsterung vornehmen:

<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:divider="@android:color/green"
    android:dividerHeight="4dp"
    android:layout_alignParentTop="true"
    android:padding="5dp" >

</ListView>

O

<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:paddingTop="2dp"
    android:divider="@android:color/green"
    android:dividerHeight="4dp"
    android:paddingLeft="1dp"
    android:paddingRight="1dp"
    android:paddingBottom="2dp"
    android:paddingStart="0dp"
    android:paddingEnd="0dp" >

</ListView>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X