¿Cómo elimino líneas entre ListViews en Android?

401

Estoy usando dos ListViews como este:

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

Hay una línea en blanco entre los dos ListViews. ¿Cómo lo elimino?

deepthi
fuente
3
¿Tiene dos ListViews separadas que muestran diferentes listas o quiere decir que tiene una línea entre los elementos en su ListView?
Dave Webb
¿Es una línea "en blanco" o "negra"? Dado que la pregunta fue editada por alguien que no sea el OP. Hay una diferencia entre ellos
miva2
1
@deepthi, ¿consideraría marcar una de las respuestas como aceptada?
Antek

Respuestas:

926

Para eliminar el separador entre elementos en el mismo ListView, aquí está la solución:

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

developer.android.com # ListView

O, si quieres hacerlo en XML:

android:divider="@null"
android:dividerHeight="0dp"
dasilvj
fuente
2
por alguna razón, configurarlo en el XML no funcionó para mí. tuvo que establecerlo en el código.
Jeffrey Blattman
8
Trabajó en XML para mí. Debe poner en <ListView> </Listview>. Me pregunto por qué esto no fue aceptado como la respuesta correcta.
zolio
1
¿necesitamos hacer ambos (anular y cero) o es solo uno suficiente?
guness
3
@Pranav. Por favor maestro, escribamos sobre programación. Gracias.
Geltrude
1
Extrañamente solo dividerHeight = 0 no funcionó, solo divider = @ null sí. ¿Por qué?
Chintan Shah
96
  1. Si desea eliminar una línea divisoria, use este código:

    android:divider="@null"
  2. Si desea agregar un espacio en lugar de una línea divisoria:

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

Por lo tanto, puede usar cualquier dibujo o color en el atributo divisor.

Amintabar
fuente
65

Hay diferentes formas de lograr esto, pero no estoy seguro de cuál es el mejor (ni siquiera sé si hay una mejor manera). Conozco al menos dos formas diferentes de hacer esto en un ListView:

1. Establezca el divisor en nulo:

1.1. Programáticamente

yourListView.setDivider(null);

1.2. XML

Esto va dentro de su elemento ListView.

android:divider="@null"

2. Establezca el divisor en transparente y establezca su altura en 0 para evitar agregar espacio entre los elementos de la vista de lista:

2.1. Programáticamente:

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

2.2. XML

android:divider="@android:color/transparent"
android:dividerHeight="0dp"
Sotti
fuente
1
En ciertas situaciones parece haber un problema con simplemente establecer el color del divisor en transparente. Mis elementos ListView tenían un fondo semitransparente de color sólido. Cuando estaba usando el segundo método para ocultar el divisor, todavía parecía aparecer un "divisor". Cuando cambié al primer método, el "divisor" desapareció.
themarshal
28

En XML:

android:divider="@null"

O en Java:

listView.setDivider(null);
Khalid Taha
fuente
20

Establezca el divisor en nulo:

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
fuente
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
fuente
1
Si bien este código puede responder la pregunta, proporcionar un contexto adicional sobre cómo y / o por qué resuelve el problema mejoraría el valor a largo plazo de la respuesta.
Pato Donald el
12

Puede poner debajo de la propiedad en la etiqueta listview

android:divider="@null"

(o) programáticamente listview.Divider(null); aquí listviewes ListViewreferencia.

sandeepmaaram
fuente
10

O en XML:

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

Puede usar un color para el dibujable (por ejemplo, # ff112233), pero tenga en cuenta que las versiones anteriores a la magdalena tienen un error en el que no se puede establecer el color. En cambio, se debe usar un parche de 9 o una imagen.

Mads Kristiansen
fuente
O incluso puede usar el Android estándar que se puede @android:drawable/divider_horizontal_...
dibujar
9

Puedes probar lo siguiente. A mí me funcionó ...

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

Me resulta más fácil implementarlo en el archivo XML, ya que puede ser más difícil rastrear la línea de código en una clase con cientos de líneas. Para el XML puede usar "nulo":

android:divider="@null"
Fred
fuente
5

Para uso ListFragment

getListView().setDivider(null)

después de que se haya obtenido la lista.

Hombre malo
fuente
0

Si esto android:divider="@null"no funciona, ¿quizás cambie sus ListViews para vistas de reciclador? 

Richard Nikolas
fuente