Como faço para remover linhas entre ListViews no Android?

401

Estou usando dois ListViews assim:

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

Há uma linha em branco entre os dois ListViews. Como faço para removê-lo?

deepthi
fonte
3
Você tem dois ListViews separados que mostram listas diferentes ou quer dizer que possui uma linha entre itens no seu ListView?
Dave Webb
É uma linha "em branco" ou "preta"? Desde que a pergunta foi editada por alguém que não seja o OP. Há uma diferença entre aqueles
miva2
11
@epthi, você consideraria marcar uma das respostas como aceitas?
Antek

Respostas:

926

Para remover o separador entre itens no mesmo ListView, aqui está a solução:

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

developer.android.com # ListView

Ou, se você quiser fazer isso em XML:

android:divider="@null"
android:dividerHeight="0dp"
dasilvj
fonte
2
por algum motivo, defini-lo no XML não funcionou para mim. teve que configurá-lo no código.
Jeffrey Blattman
8
Trabalhou em XML para mim. Deve colocar no <ListView> </Listview>. Pergunto-me por que isso não foi aceito como a resposta certa.
Zolio
11
precisamos criar ambos (anular e zerar) ou é apenas um o suficiente?
guness
3
@Pranav. Por favor, professor, vamos escrever sobre programação. Obrigado.
Geltrude
11
Estranhamente, apenas dividerHeight = 0 não funcionou, apenas divider = @ null funcionou. Por quê?
Chintan Shah
96
  1. Se você deseja remover uma linha divisória, use este código:

    android:divider="@null"
  2. Se você deseja adicionar um espaço em vez de uma linha divisória:

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

Portanto, você pode usar qualquer desenho ou cor no atributo divider.

Amintabar
fonte
65

Existem diferentes maneiras de conseguir isso, mas não tenho certeza de qual é a melhor (nem sei se existe a melhor). Eu sei pelo menos duas maneiras diferentes de fazer isso em um ListView:

1. Defina divisor como nulo:

1.1 Programaticamente

yourListView.setDivider(null);

1.2 XML

Isso vai dentro do seu elemento ListView.

android:divider="@null"

2. Defina divisor como transparente e defina sua altura como 0 para evitar adicionar espaço entre os elementos do listview:

2.1 Programaticamente:

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

2.2 XML

android:divider="@android:color/transparent"
android:dividerHeight="0dp"
Sotti
fonte
11
Em certas situações, parece haver um problema em simplesmente definir a cor do divisor para transparente. Cada um dos meus elementos do ListView tinha um fundo semi-transparente de cor sólida. Quando eu estava usando o segundo método de ocultar o divisor, um "divisor" ainda parecia aparecer. Quando mudei para o primeiro método, o "divisor" desapareceu.
themarshal
28

Em XML:

android:divider="@null"

Ou em Java:

listView.setDivider(null);
Khalid Taha
fonte
20

Defina divisor como 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
fonte
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
fonte
11
Embora esse código possa responder à pergunta, fornecer um contexto adicional sobre como e / ou por que resolve o problema melhoraria o valor a longo prazo da resposta.
Donald Duck
12

Você pode colocar a propriedade abaixo na tag listview

android:divider="@null"

(ou) programaticamente listview.Divider(null); aqui listviewestá a ListViewreferência.

sandeepmaaram
fonte
10

Ou em XML:

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

Você pode usar uma cor para o drawable (por exemplo, # ff112233), mas lembre-se de que as versões anteriores ao cupcake têm um erro no qual a cor não pode ser definida. Em vez disso, um patch de 9 ou uma imagem deve ser usada.

Mads Kristiansen
fonte
Ou você ainda pode usar o drawable Android padrão para o divisor:@android:drawable/divider_horizontal_...
CCR
9

Você pode tentar o seguinte. Funcionou para mim ...

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

Acho mais fácil implementá-lo no arquivo XML, pois pode ser mais difícil rastrear a linha de código em uma classe com centenas de linhas. Para o XML, você pode usar "null":

android:divider="@null"
Fred
fonte
5

Para uso ListFragment

getListView().setDivider(null)

após a lista ter sido obtida.

Homem malvado
fonte
0

Se isso android:divider="@null"não funcionar, talvez você altere seu ListViews for Recycler Views? 

Richard Nikolas
fonte