Come rimuovo le linee tra ListViews su Android?


401

Sto usando due ListViews in questo modo:

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

C'è una linea vuota tra le due ListViews. Come lo rimuovo?


3
Hai due ListView separate che mostrano elenchi diversi o vuoi dire che hai una linea tra gli elementi in ListView?
Dave Webb,

È una riga "vuota" o "nera"? Poiché la domanda è stata modificata da qualcuno diverso dall'OP. C'è una differenza tra quelli
miva2,

1
@deepthi, valuteresti di contrassegnare una delle risposte come accettate?
Antek,

Risposte:


926

Per rimuovere il separatore tra gli elementi nello stesso ListView, ecco la soluzione:

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

developer.android.com # ListView

Oppure, se vuoi farlo in XML:

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

2
per qualche motivo, impostarlo nell'XML non ha funzionato per me. ho dovuto impostarlo nel codice.
Jeffrey Blattman,

8
Ha funzionato in XML per me. Dovrebbe inserire <ListView> </Listview>. Mi chiedo perché questa non sia stata accettata come la risposta giusta.
zolio,

1
dobbiamo fare entrambi (annullare e azzerare) o è solo uno sufficiente?
armata il

3
@Pranav. Per favore, insegnante, scriviamo sulla programmazione. Grazie.
Geltrude,

1
Stranamente solo dividerHeight = 0 non ha funzionato, solo divider = @ null ha funzionato. Perché?
Chintan Shah,

96
  1. Se vuoi rimuovere una linea di divisione, usa questo codice:

    android:divider="@null"
  2. Se si desidera aggiungere uno spazio anziché una linea di divisione:

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

Quindi, puoi usare qualsiasi disegno o colore nell'attributo divisore.


65

Esistono diversi modi per raggiungere questo obiettivo, ma non sono sicuro di quale sia il migliore (non so nemmeno se esiste un modo migliore). Conosco almeno due modi diversi per farlo in un ListView:

1. Impostare il divisore su null:

1.1. programmazione

yourListView.setDivider(null);

1.2. XML

Questo va all'interno del tuo elemento ListView.

android:divider="@null"

2. Imposta il divisore su trasparente e imposta la sua altezza su 0 per evitare di aggiungere spazio tra gli elementi listview:

2.1. livello di programmazione:

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

2.2. XML

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

1
In alcune situazioni sembra esserci un problema con la semplice impostazione del colore del divisore su trasparente. Gli elementi My ListView avevano ciascuno uno sfondo a tinta unita, semitrasparente. Quando stavo usando il secondo metodo per nascondere il divisore, sembrava ancora apparire un "divisore". Quando sono passato al primo metodo, il "divisore" è scomparso.
themarshal,

28

In XML:

android:divider="@null"

O in Java:

listView.setDivider(null);

20

Imposta il divisore su null:

GIAVA

  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
Mentre questo codice può rispondere alla domanda, fornire un contesto aggiuntivo riguardo a come e / o perché risolve il problema migliorerebbe il valore a lungo termine della risposta.
Paperino

12

È possibile inserire la proprietà di seguito nel tag listview

android:divider="@null"

(o) a livello di codice listview.Divider(null); qui listviewè ListViewriferimento.


10

O in XML:

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

È possibile utilizzare un colore per il disegno (ad esempio # ff112233), ma tenere presente che le versioni pre-cupcake hanno un bug in cui non è possibile impostare il colore. Invece deve essere usato un 9-patch o un'immagine ..


Oppure puoi anche usare il @android:drawable/divider_horizontal_...
disegno

9

Puoi provare quanto segue. Ha funzionato per me ...

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

7

Trovo più semplice implementarlo nel file XML in quanto può essere più difficile tracciare la riga di codice in una classe con centinaia di righe. Per l'XML è possibile utilizzare "null":

android:divider="@null"

5

Per uso ListFragment

getListView().setDivider(null)

dopo che l'elenco è stato ottenuto.


0

Se questo android:divider="@null"non funziona, forse stai cambiando le tue ListView per le visualizzazioni dei riciclatori? 

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.