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?

0voto

Avi Levin Punkte 1838

Um Abstand zwischen den Ansichten innerhalb einer listView zu geben, verwenden Sie bitte padding auf Ihre aufblasbaren Ansichten.

Sie können verwenden android:paddingBottom="(number)dp" && android:paddingTop="(number)dp" auf Ihre Ansicht oder Ansichten, die Sie innerhalb Ihrer Listenansicht aufblasen.

Die Lösung mit den Trennlinien ist nur eine Notlösung, denn wenn Sie eines Tages eine Trennfarbe verwenden wollen (im Moment ist sie transparent), werden Sie feststellen, dass die Trennlinie gedehnt wurde.

0voto

Juliagu Punkte 43

Ich fand eine nicht so gute Lösung für diesen Fall, wenn Sie eine HorizontalListView verwenden, da Teiler nicht mit ihm zu arbeiten scheinen, aber ich denke, es wird so oder so für die häufigere ListView funktionieren.

Ich füge nur hinzu:

<View
android:layout_marginBottom="xx dp/sp"/>

in der untersten Ansicht des Layouts, das Sie in der Adapterklasse aufblasen, werden Abstände zwischen den Elementen erzeugt

0voto

jwehrle Punkte 3359

Viele dieser Lösungen funktionieren. Allerdings, wenn alles, was Sie wollen, ist in der Lage sein, den Rand zwischen den Elementen die einfachste Methode, die ich mit gekommen ist, um Ihr Element zu wickeln - in Ihrem Fall die CheckedTextView - in einem LinearLayout und setzen Sie Ihre Rand-Formatierung für das Element in diesem, nicht die Root-Layout. Stellen Sie sicher, dass Sie diesem Wrapping-Layout eine Id geben und es zusammen mit Ihrem CheckedTextView in Ihrem Adapter erstellen.

Das war's. Tatsächlich instanziieren Sie den Rand auf der Elementebene für die ListView. Denn die ListView kennt kein Element-Layout - nur Ihr Adapter kennt es. Dies bläht im Grunde den Teil des Element-Layouts auf, der vorher ignoriert wurde.

0voto

kungmaben Punkte 1

Vielleicht können Sie versuchen, Android:layout_marginTop = "15dp" und Android:layout_marginBottom = "15dp" im äußersten Layout hinzuzufügen

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