Tôi cần phải xóa hoàn toàn bộ chia khỏi ExpandableListView. Đối với các mục cha mẹ, đó là phương thức setDividerHeight nơi tôi có thể chuyển một giá trị bằng không. Nhưng không có phương pháp tương tự cho chia trẻ em. Có cách nào để che giấu nó không?Android: Ẩn ngăn con trong ExpandableListView
Trả lời
Nếu bạn muốn xóa hoàn toàn bộ chia từ ExpandableListView
, setDividerHeight
là ok cho cả mục cha và con. Bộ chia con sẽ được vẽ bằng cách sử dụng cùng chiều cao với dải phân cách thông thường hoặc được đặt bởi setDividerHeight()
.
Và tôi đang sử dụng một công việc xung quanh cho chúng tôi để che giấu một và thôi ẩn kia, chỉ cần đặt chia và các mặt hàng trong cùng một màu sắc như dưới đây:
ExpandableListView expView = getExpandableListView();
expView.setGroupIndicator(null);
expView.setChildIndicator(null);
expView.setChildDivider(getResources().getDrawable(R.color.greywhite));
expView.setDivider(getResources().getDrawable(R.color.white));
expView.setDividerHeight(2);
setDividerHeight
phải bên dưới setChildDivider
và setDivider
, hoặc chiều cao sẽ là 0.
chờ câu trả lời thêm ...
để ẩn chia con đặt nó màu để minh bạch # 00000000
xác định minh bạch trong hồ sơ của bạn color.xml
<color name="transparent">#00000000</color>
và sau đó thiết lập chia con
listView.setChildDivider(getResources().getDrawable(R.color.transparent))
hoặc trong file layout xml
<ExpandableListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:childDivider="#00000000"/>
Đặt dải phân cách thành màu trong suốt không thực sự xóa nó. – Sulby
Hoặc bạn có thể sử dụng 'android: childDivider =" @ android: color/transparent "' – cassioso
Điều này chỉ hoạt động nếu nền phía sau danh sách của bạn có cùng màu với phần tử danh sách của bạn. Nếu bạn có một màu rửa cho nền và màu trắng cho các yếu tố này sẽ không hoạt động. –
Đặt chiều cao chia của bạn expandableListView to 0
//setDividerHeight(0)
Và sau đó thêm một cái nhìn ở phía dưới trong headerView bạn xml
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_gravity="bottom"
android:background="@android:color/darker_gray"
/>
Nếu bạn muốn loại bỏ chia đứa con duy nhất, Bạn có thể tạo một drawable với cùng một màu sắc như màu nền đứa trẻ. Sau đó đặt nó làm bộ chia con của bạn.
ShapeDrawable sd1 = new ShapeDrawable(new RectShape()); sd1.getPaint().setColor(YOUR CHILD ITEM BACKGROUND COLOR); mExpListView.setChildDivider(sd1);
Bạn có thể sử dụng thuộc tính
<ExpandableListView
android:id="@+id/interestlvExp"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:divider="@null">
</ExpandableListView>
Nhưng điều này sẽ loại bỏ danh sách nhóm chia là tốt.
Đã lưu rất nhiều thời gian. – Ganesh
Tất nhiên, nếu có khoảng cách cho padding là gây phiền nhiễu, bạn chỉ có thể thiết lập DividerHeight là 0, và bao gồm một dải trong ô được sử dụng trong bộ điều hợp tùy chỉnh của bạn. Để ngăn mục dưới cùng có dấu tách, bạn chỉ có thể ẩn dấu tách nếu index == getGroupCount() - 1 && index2 == getChildCount() - 1 – csga5000