Làm cách nào để đặt chiều rộng của dải phân cách ListView tùy chỉnh của tôi, để có chiều rộng nhỏ hơn chiều rộng hàng của tôi?Làm cách nào để đặt chiều rộng của bộ chia ListView?
Trả lời
Tạo một bản vá png 9 có pixel trong suốt ở bên trái và bên phải. Ví dụ: 53x4 .9.png có 25 pixel trong suốt ở hai bên (+ pixel đến 9patch) sẽ kéo dài 1 pixel ra sao cho có 25 pixel ở hai bên của nó.
Bạn sẽ có thể gọi
mListView.setDivider(Drawable d);
Và vượt qua nó có thể vẽ mà bạn có thể bao gồm trong res/thư mục drawable của bạn. Nếu bạn muốn làm cho nó đi gần như tất cả các cách trên bạn chỉ có thể làm cho một bản vá 9 có chứa một đường ngang với càng nhiều minh bạch ở bên trái và bên phải như bạn muốn. Và đặt nó để kéo dài phần giữa của dòng.
Nếu bạn không muốn thực hiện 9 vá, sau đó bạn có thể chèn
<View android:layout_width="fill_parent" android:layout_height="1dp" android:layout_marginTop="4dp" android:background="#33B5E5" />
trong mã xml lại list_item. Nó tạo ra một đường màu xanh và bạn có thể dễ dàng kiểm soát chiều rộng của dòng này. Để thực hiện thành công, bạn sẽ phải vô hiệu hóa bộ chia của listview. Được cung cấp here
Thường được ưu tiên hơn sử dụng ListView
ngay bây giờ. Xem this Q&A để biết cách đặt chiều rộng của dải phân cách trong một RecyclerView
.
Sử dụng <inset>
drawable/list_divider.xml
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="10dp"
android:insetRight="10dp" >
<shape android:shape="rectangle" >
<solid android:color="@color/list_divider_color" />
</shape>
</inset>
Và trong cách bố trí của bạn:
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cacheColorHint="#00000000"
android:divider="@drawable/list_divider"
android:dividerHeight="1dp" >
</ListView>
Nguồn:
Tôi đã thử điều này. Nhưng nó chồng lên dải phân cách tùy chỉnh của tôi trên dải mặc định. Bất kỳ ý tưởng tại sao? – Zen
@Suragch xin lỗi vì ngoại tuyến, nhưng tôi không tìm thấy bất kỳ đề cập nào trong tài liệu liên quan đến việc không sử dụng 'ListView'. Tôi hiểu suy nghĩ của bạn đằng sau những lời này, nhưng tôi nghĩ nó có thể gây nhầm lẫn cho ai đó. Tuy nhiên, câu trả lời tuyệt vời. – Viacheslav
@Viacheslav, cảm ơn. Tôi đã sửa lại từ ngữ của mình. – Suragch
Để lại 'width' tại' match_parent' và thiết lập một lề trái hoặc phải. –