Jak usunąć linie między ListViews na Androidzie?


401

Używam dwóch ListViewtakich jak to:

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

Pomiędzy tymi dwoma jest jedna pusta linia ListView. Jak mogę to usunąć?


3
Czy masz dwa oddzielne ListViews pokazujące różne listy, czy masz na myśli linię między elementami w ListView?
Dave Webb,

Czy jest to „pusta” czy „czarna” linia? Ponieważ pytanie zostało zredagowane przez kogoś innego niż OP. Istnieje różnica między nimi
miva2

1
@deepthi, czy zastanowiłbyś się nad oznaczeniem jednej z odpowiedzi jako zaakceptowanych?
Antek

Odpowiedzi:


926

Aby usunąć separator między elementami w tym samym widoku listy, oto rozwiązanie:

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

developer.android.com # ListView

Lub, jeśli chcesz to zrobić w XML:

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

2
z jakiegoś powodu ustawienie go w XML nie działało dla mnie. musiałem to ustawić w kodzie.
Jeffrey Blattman

8
Pracowałem dla mnie w XML. Należy umieścić w <ListView> </Listview>. Zastanawiam się, dlaczego nie zostało to uznane za właściwą odpowiedź.
zolio

1
czy musimy dokonać zarówno (zerowania, jak i zerowania), czy wystarczy tylko jeden?
guness

3
@Pranav. Nauczycielu, napiszmy o programowaniu. Dziękuję Ci.
Geltrude

1
Dziwnie tylko dividerHeight = 0 nie działało, działał tylko divider = @ null. Dlaczego?
Chintan Shah

96
  1. Jeśli chcesz usunąć linię podziału, użyj tego kodu:

    android:divider="@null"
  2. Jeśli chcesz dodać spację zamiast linii podziału:

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

Możesz więc użyć dowolnego rysunku lub koloru w atrybucie dzielnika.


65

Istnieją różne sposoby osiągnięcia tego celu, ale nie jestem pewien, który z nich jest najlepszy (nawet nie wiem, czy istnieje najlepszy sposób). Znam co najmniej dwa różne sposoby, aby to zrobić w widoku listy:

1. Ustaw dzielnik na zero:

1.1 Programowo

yourListView.setDivider(null);

1.2 XML

To wchodzi w twój element ListView.

android:divider="@null"

2. Ustaw dzielnik na przezroczysty i ustaw jego wysokość na 0, aby uniknąć dodawania spacji między elementami widoku listy:

2.1 Programowo:

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

2.2 XML

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

1
W niektórych sytuacjach wydaje się, że występuje problem z prostym ustawieniem koloru dzielnika na przezroczysty. Każdy z moich elementów ListView miał jednolite, półprzezroczyste tło. Kiedy korzystałem z drugiej metody ukrywania dzielnika, nadal wydawało się, że „dzielnik”. Kiedy przełączyłem się na pierwszą metodę, „dzielnik” zniknął.
tematyczny


20

Ustaw dzielnik na null:

JAWA

  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
Chociaż ten kod może odpowiedzieć na pytanie, zapewnienie dodatkowego kontekstu dotyczącego tego, jak i / lub dlaczego rozwiązuje problem, poprawiłoby długoterminową wartość odpowiedzi.
Kaczor Donald

12

Możesz umieścić poniżej właściwości w tagu widoku listy

android:divider="@null"

(lub) programowo listview.Divider(null); tutaj listviewjest ListViewodniesienie.


10

Lub w XML:

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

Możesz użyć koloru do rysowania (np. # Ff112233), ale pamiętaj, że wydania pre-cupcake mają błąd, w którym nie można ustawić koloru. Zamiast tego należy użyć 9-łatki lub obrazu.


Lub możesz nawet użyć standardowego systemu Android z dzielnikiem:@android:drawable/divider_horizontal_...
ściga się

9

Możesz wypróbować następujące. To działało dla mnie ...

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

7

Łatwiej jest go zaimplementować w pliku XML, ponieważ trudniej jest prześledzić linię kodu w klasie zawierającej setki linii. W przypadku XML możesz użyć „null”:

android:divider="@null"

5

Do użytku z ListFragment

getListView().setDivider(null)

po uzyskaniu listy.


0

Jeśli to android:divider="@null"nie zadziała, być może zmiana ListViews dla widoków Recycler? 

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.