2010-07-14 4 views
36

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

44

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 setChildDividersetDivider, hoặc chiều cao sẽ là 0.

chờ câu trả lời thêm ...

+0

Đã lưu rất nhiều thời gian. – Ganesh

+0

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

24

để ẩ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"/> 
+7

Đặt dải phân cách thành màu trong suốt không thực sự xóa nó. – Sulby

+7

Hoặc bạn có thể sử dụng 'android: childDivider =" @ android: color/transparent "' – cassioso

+0

Đ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. –

0

Đặ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" 
     /> 
1

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);

0

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.