Wie entferne ich Linien zwischen ListViews unter Android?


401

Ich benutze zwei ListViews wie folgt:

<ListView
   android:id="@+id/ListView"
   android:text="@string/Website"
   android:layout_height="30px"
   android:layout_width="150px"
   android:scrollbars="none"
   android:transcriptMode="normal"/>
<ListView
   android:id="@+id/ListView1"
   android:text="@string/Website"
   android:layout_height="30px"
   android:layout_width="150px"
   android:scrollbars="none"
   android:transcriptMode="normal"/>

Es gibt eine leere Zeile zwischen den beiden ListViews. Wie entferne ich es?


3
Haben Sie zwei separate ListViews mit unterschiedlichen Listen oder haben Sie eine Linie zwischen Elementen in Ihrer ListView?
Dave Webb

Ist es eine "leere" oder "schwarze" Linie? Da wurde die Frage von jemand anderem als dem OP bearbeitet. Es gibt einen Unterschied zwischen diesen
miva2

1
@deepthi, würdest du eine der Antworten als akzeptiert markieren?
Antek

Antworten:


926

Hier ist die Lösung, um das Trennzeichen zwischen Elementen in derselben ListView zu entfernen:

getListView().setDivider(null);
getListView().setDividerHeight(0);

developer.android.com # ListView

Oder wenn Sie es in XML tun möchten:

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

2
Aus irgendeinem Grund hat es für mich nicht funktioniert, es in XML festzulegen. musste es in den Code setzen.
Jeffrey Blattman

8
Arbeitete in XML für mich. Sollte in die <ListView> </ Listview> eingefügt werden. Ich frage mich, warum dies nicht als die richtige Antwort akzeptiert wurde.
Zolio

1
Müssen wir beides machen (annullieren und nullifizieren) oder ist nur eins genug?
Guness

3
@Pranav. Bitte Lehrer, lass uns über das Programmieren schreiben. Vielen Dank.
Geltrude

1
Seltsamerweise hat nur dividerHeight = 0 nicht funktioniert, nur divider = @ null hat funktioniert. Warum?
Chintan Shah

96
  1. Wenn Sie eine Trennlinie entfernen möchten, verwenden Sie diesen Code:

    android:divider="@null"
  2. Wenn Sie anstelle einer Trennlinie ein Leerzeichen hinzufügen möchten:

    android:divider="@android:color/transparent"
    android:dividerHeight="5dp"

Sie können also eine beliebige Zeichen- oder Farbe im Teilerattribut verwenden.


65

Es gibt verschiedene Wege, um dies zu erreichen, aber ich bin mir nicht sicher, welcher der beste ist (ich weiß nicht einmal, ob es einen besten Weg gibt). Ich kenne mindestens zwei verschiedene Möglichkeiten, dies in einer ListView zu tun:

1. Setzen Sie den Teiler auf null:

1.1. Programmatisch

yourListView.setDivider(null);

1.2. XML

Dies geht in Ihr ListView-Element.

android:divider="@null"

2. Setzen Sie den Teiler auf transparent und seine Höhe auf 0, um zu vermeiden, dass zwischen Listenansichtselementen Leerzeichen eingefügt werden:

2.1. Programmatisch:

yourListView.setDivider(new ColorDrawable(android.R.color.transparent));
yourListView.setDividerHeight(0);

2.2. XML

android:divider="@android:color/transparent"
android:dividerHeight="0dp"

1
In bestimmten Situationen scheint es ein Problem zu geben, die Trennfarbe einfach auf transparent zu setzen. Meine ListView-Elemente hatten jeweils einen einfarbigen, halbtransparenten Hintergrund. Als ich die zweite Methode zum Ausblenden des Teilers verwendete, schien immer noch ein "Teiler" zu erscheinen. Als ich zur ersten Methode wechselte, verschwand der "Teiler".
Themarshal

28

In XML:

android:divider="@null"

Oder in Java:

listView.setDivider(null);

20

Setzen Sie den Teiler auf null:

JAVA

  listview_id.setDivider(null);

XML

<ListView 
  android:id="@+id/listview"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:divider="@null"
  />

15
   <ListView xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/list"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:divider="@null"
  android:dividerHeight="0dp"/>

1
Während dieser Code die Frage möglicherweise beantwortet, würde die Bereitstellung eines zusätzlichen Kontexts darüber, wie und / oder warum das Problem gelöst wird, den langfristigen Wert der Antwort verbessern.
Donald Duck

12

Sie können die folgende Eigenschaft in das Listview-Tag einfügen

android:divider="@null"

(oder) programmatisch listview.Divider(null); hier listviewist ListViewReferenz.


10

Oder in XML:

android:divider="@drawable/list_item_divider"
android:dividerHeight="1dp"

Sie können eine Farbe für das Zeichenelement verwenden (z. B. # ff112233). Beachten Sie jedoch, dass Pre-Cupcake-Versionen einen Fehler aufweisen, bei dem die Farbe nicht festgelegt werden kann. Stattdessen muss ein 9-Patch oder ein Bild verwendet werden.


Oder Sie können sogar das Standard-Android-Zeichen für den Teiler verwenden:@android:drawable/divider_horizontal_...
Rennen am

9

Sie können Folgendes versuchen. Es hat bei mir funktioniert ...

android:divider="@android:color/transparent"
android:dividerHeight="0dp" 

7

Ich finde es einfacher, es in der XML-Datei zu implementieren, da es schwieriger sein kann, die Codezeile in einer Klasse mit Hunderten von Zeilen zu verfolgen. Für das XML können Sie "null" verwenden:

android:divider="@null"

5

Für ListFragment verwenden

getListView().setDivider(null)

nachdem die Liste erhalten wurde.


0

Wenn dies android:divider="@null"nicht funktioniert, ändern Sie möglicherweise Ihre ListViews für Recycler-Ansichten? 

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.