¿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?


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"

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.


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"

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);

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

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


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.


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" 

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"

5

Para uso ListFragment

getListView().setDivider(null)

después de que se haya obtenido la lista.


0

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.