Bagaimana cara menghapus garis antara ListViews di Android?

401

Saya menggunakan dua ListViews seperti ini:

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

Ada satu garis kosong di antara keduanya ListView. Bagaimana cara menghapusnya?

deepthi
sumber
3
Apakah Anda memiliki dua ListViews terpisah yang menampilkan daftar yang berbeda atau maksud Anda memiliki garis di antara item di ListView Anda?
Dave Webb
Apakah itu garis "kosong" atau "hitam"? Karena pertanyaan diedit oleh orang lain selain OP. Ada perbedaan di antara mereka
miva2
1
@deepthi, apakah Anda akan mempertimbangkan menandai salah satu jawaban sebagai diterima?
Antek

Jawaban:

926

Untuk menghapus pemisah antara item dalam ListView yang sama, berikut adalah solusinya:

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

developer.android.com # ListView

Atau, jika Anda ingin melakukannya dalam XML:

android:divider="@null"
android:dividerHeight="0dp"
dasilvj
sumber
2
untuk beberapa alasan, pengaturannya di XML tidak berhasil untuk saya. harus mengaturnya dalam kode.
Jeffrey Blattman
8
Bekerja dalam XML untuk saya. Harus dimasukkan ke dalam <ListView> </Listview>. Bertanya-tanya mengapa ini tidak diterima sebagai jawaban yang benar.
zolio
1
apakah kita perlu membuat keduanya (batal dan kosongkan) atau cukup satu saja?
guness
3
@Pranav. Tolong guru, mari kita menulis tentang pemrograman. Terima kasih.
Geltrude
1
Weirdly only dividerHeight = 0 tidak bekerja, hanya divider = @ null yang bekerja. Mengapa?
Chintan Shah
96
  1. Jika Anda ingin menghapus garis pembagi, gunakan kode ini:

    android:divider="@null"
  2. Jika Anda ingin menambahkan spasi alih-alih garis pembagi:

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

Jadi, Anda dapat menggunakan gambar atau warna apa pun dalam atribut pembagi.

Amintabar
sumber
65

Ada berbagai cara untuk mencapai hal ini, tetapi saya tidak yakin mana yang terbaik (saya bahkan tidak tahu apakah ada cara terbaik). Saya tahu setidaknya dua cara berbeda untuk melakukan ini di ListView:

1. Setel pembagi menjadi nol:

1.1. Secara terprogram

yourListView.setDivider(null);

1.2. XML

Ini masuk ke dalam elemen ListView Anda.

android:divider="@null"

2. Atur pembagi menjadi transparan dan setel tingginya ke 0 untuk menghindari penambahan ruang di antara elemen-elemen listview:

2.1. Secara terprogram:

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

2.2. XML

android:divider="@android:color/transparent"
android:dividerHeight="0dp"
Sotti
sumber
1
Dalam situasi tertentu tampaknya ada masalah dengan hanya mengatur warna pembagi menjadi transparan. Elemen ListView saya masing-masing memiliki latar belakang berwarna solid, semi-transparan. Ketika saya menggunakan metode kedua menyembunyikan pembagi, "pembagi" tampaknya masih muncul. Ketika saya beralih ke metode pertama, "pembagi" menghilang.
themarshal
28

Dalam XML:

android:divider="@null"

Atau di Jawa:

listView.setDivider(null);
Khalid Taha
sumber
20

Setel pembagi menjadi nol:

JAWA

  listview_id.setDivider(null);

XML

<ListView 
  android:id="@+id/listview"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:divider="@null"
  />
Saneesh
sumber
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
sumber
1
Sementara kode ini dapat menjawab pertanyaan, memberikan konteks tambahan tentang bagaimana dan / atau mengapa memecahkan masalah akan meningkatkan nilai jangka panjang jawaban.
Donald Duck
12

Anda dapat memasukkan properti di bawah ini ke tag listview

android:divider="@null"

(atau) pemrograman listview.Divider(null); di sini listviewadalah ListViewreferensi.

sandeepmaaram
sumber
10

Atau dalam XML:

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

Anda dapat menggunakan warna untuk drawable (mis. # Ff112233), tetapi perlu diketahui, bahwa rilis pre-cupcake memiliki bug di mana warnanya tidak dapat diatur. Sebagai gantinya 9-patch atau gambar harus digunakan ..

Mads Kristiansen
sumber
Atau Anda bahkan dapat menggunakan @android:drawable/divider_horizontal_...
drawable
9

Anda dapat mencoba yang berikut ini. Itu bekerja untuk saya ...

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

Saya merasa lebih mudah untuk mengimplementasikannya dalam file XML karena akan lebih sulit untuk melacak garis kode di kelas dengan ratusan baris. Untuk XML, Anda dapat menggunakan "null":

android:divider="@null"
Fred
sumber
5

Untuk penggunaan ListFragment

getListView().setDivider(null)

setelah daftar diperoleh.

Meanman
sumber
0

Jika ini android:divider="@null"tidak berhasil, mungkin mengubah ListViews Anda untuk Tampilan Pendaur Ulang? 

Richard Nikolas
sumber