Làm cách nào để xóa các dòng giữa ListViews trên Android?


401

Tôi đang sử dụng hai ListViews như thế này:

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

Có một dòng trống giữa hai ListViews. Làm thế nào để tôi loại bỏ nó?


3
Bạn có hai ListView riêng biệt hiển thị các danh sách khác nhau hay bạn có nghĩa là bạn có một dòng giữa các mục trong ListView của bạn?
Dave Webb

Đó là dòng "trống" hay "đen"? Vì câu hỏi đã được chỉnh sửa bởi một người khác ngoài OP. Có một sự khác biệt giữa những thứ đó
miva2

1
@deepthi, bạn có xem xét việc đánh dấu một trong những câu trả lời là được chấp nhận không?
Antek

Câu trả lời:


926

Để xóa dấu phân cách giữa các mục trong cùng ListView, đây là giải pháp:

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

developer.android.com # ListView

Hoặc, nếu bạn muốn làm điều đó trong XML:

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

2
vì một số lý do, việc đặt nó trong XML không hiệu quả với tôi. phải đặt nó trong mã.
Jeffrey Blattman

8
Làm việc trong XML cho tôi. Nên đặt trong <ListView> </ Listview>. Tự hỏi tại sao điều này không được chấp nhận là câu trả lời đúng.
zolio

1
chúng ta cần phải làm cho cả hai (vô hiệu hóa và không xác định) hoặc chỉ là một đủ?
xạ thủ

3
@Pranav. Xin thầy, hãy viết về lập trình. Cảm ơn bạn.
Geltrude

1
Thật kỳ lạ, chỉ có dải phân cáchHeight = 0 không hoạt động, chỉ có dải phân cách = @ null đã làm. Tại sao?
Chintan Shah

96
  1. Nếu bạn muốn xóa một dòng chia, sử dụng mã này:

    android:divider="@null"
  2. Nếu bạn muốn thêm khoảng trắng thay vì đường chia:

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

Vì vậy, bạn có thể sử dụng bất kỳ màu vẽ hoặc màu nào trong thuộc tính bộ chia.


65

Có nhiều cách khác nhau để đạt được điều này, nhưng tôi không chắc cách nào là tốt nhất (tôi thậm chí không biết là có cách tốt nhất). Tôi biết ít nhất hai cách khác nhau để làm điều này trong ListView:

1. Đặt dải phân cách thành null:

1.1. Lập trình

yourListView.setDivider(null);

1.2. XML

Điều này đi vào bên trong phần tử ListView của bạn.

android:divider="@null"

2. Đặt dải phân cách trong suốt và đặt chiều cao của nó thành 0 để tránh thêm khoảng trắng giữa các thành phần listview:

2.1. Lập trình:

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

2.2. XML

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

1
Trong một số tình huống, dường như có một vấn đề với việc chỉ cần đặt màu của dải phân cách thành trong suốt. Các phần tử ListView của tôi đều có nền màu bán trong suốt. Khi tôi đang sử dụng phương pháp ẩn dải phân cách thứ hai, một "dải phân cách" dường như vẫn xuất hiện. Khi tôi chuyển sang phương thức đầu tiên, "dải phân cách" biến mất.
themarshal

28

Trong XML:

android:divider="@null"

Hoặc trong Java:

listView.setDivider(null);

20

Đặt bộ chia thành null:

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
Mặc dù mã này có thể trả lời câu hỏi, việc cung cấp ngữ cảnh bổ sung về cách thức và / hoặc lý do giải quyết vấn đề sẽ cải thiện giá trị lâu dài của câu trả lời.
Vịt Donald

12

Bạn có thể đặt tài sản dưới đây trong thẻ listview

android:divider="@null"

(hoặc) lập trình listview.Divider(null); ở đây listviewListViewtài liệu tham khảo.


10

Hoặc bằng XML:

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

Bạn có thể sử dụng màu cho màu vẽ (ví dụ # ff112233), nhưng lưu ý rằng các bản phát hành trước cupcake có một lỗi trong đó không thể đặt màu. Thay vào đó, một bản vá 9 hoặc hình ảnh phải được sử dụng ..


Hoặc thậm chí bạn có thể sử dụng Android drawable tiêu chuẩn cho dải phân cách:@android:drawable/divider_horizontal_...
cuộc đua

9

Bạn có thể thử như sau. Nó làm việc cho tôi ...

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

7

Tôi thấy việc triển khai nó trong tệp XML dễ dàng hơn vì có thể khó theo dõi dòng mã hơn trong một lớp với hàng trăm dòng. Đối với XML, bạn có thể sử dụng "null":

android:divider="@null"


0

Nếu điều này android:divider="@null"không hiệu quả, có thể thay đổi ListViews của bạn cho Chế độ xem tái chế? 

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.