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?

deepthi
quelle
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"
dasilvj
quelle
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.

Amintabar
quelle
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"
Sotti
quelle
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);
Khalid Taha
quelle
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"
  />
Saneesh
quelle
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"/>
Muhammad Shafqat
quelle
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.

Sandeepmaaram
quelle
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.

Mads Kristiansen
quelle
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" 
Zia
quelle
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"
Fred
quelle
5

Für ListFragment verwenden

getListView().setDivider(null)

nachdem die Liste erhalten wurde.

Gemeiner Mann
quelle
0

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

Richard Nikolas
quelle