Tôi hiện đang làm việc trên một dự án mà tôi cần một cái gì đó như sau:Multi-lớp ExpandableListView
- MainGroup 1 (Expandable)
- SubGroup 1 (Expandable)
- SubSubGroup 1 (Expandable)
- Child View
- Child View
- ...
- SubSubGroup 2 (Expandable)
- Child View
- Child View
- ...
- SubGroup 2 (Expandable)
- SubSubGroup 3 (Expandable)
- Child View
- ...
- SubSubGroup 4 (Expandable)
- Child View
- ...
- SubGroup 3 (Expandable)
- Child View
- ...
- MainGroup 2 (Expandable)
- ...
Tại hầu hết nó sẽ là một ExpandableListView
bên trong một ExpandableListView
bên trong một ExpandableListView
- vì vậy 3 lớp ExpandableListView
:
MainGroup
sẽ chỉ giữExpandableListView
khác.SubGroup
sẽ giữ các số khácExpandableListView
trừ hai số cuối cùng, allways sẽ chỉ làChildViews
. (Tôi nghĩ rằng hai chỉ có thể được thay thế bằng một choSubSubGroup
)SubSubGroup
allways giữChildViews
.
Vấn đề của tôi là tôi nghĩ rằng tôi không hiểu các nguyên tắc cơ bản về cách bố trí ExpandableListView
là trẻ em. Tôi đã xem xét các ví dụ như this, nhưng không thể xem xét chức năng của tôi.
Tôi đã thử chỉ cần thêm một số ExpandableListView
làm trẻ em khác - nhưng một số thứ không hoạt động vì chỉ có mục đầu tiên bên trong ExpandableListView
hiển thị nếu bạn mở rộng một trong các nhóm bên ngoài. Tuy nhiên tôi có thể bằng cách thiết lập chiều cao của các thùng chứa nhóm bên ngoài bằng tay làm cho nó đủ lớn để hiển thị tất cả các mục ở bên trong ExpandableListView
. Để tối ưu, tính toán chiều cao nên tất nhiên được thực hiện khi đang bay.
Vì vậy, để có được một số câu hỏi vững chắc hơn:
- Ai đó có thể cho tôi một lời giải thích của "vòng đời"
ExpandableListView
(bằng cách này tôi có nghĩa instantation, tái sử dụng các quan điểm, mở rộng/thính giả sụp đổ) bao gồm:- Làm thế nào và khi nào thì một số
ExpandableListView
được thông báo rằng một đứa trẻ được mở rộng/thu gọn? - Làm thế nào để
ExpandableListView
biết bao nhiêu không gian để làm cho tất cả trẻ em để phù hợp với một container nhóm?
- Làm thế nào và khi nào thì một số
- Bao nhiêu lợi ích là có trong việc sử dụng
ExpandableListView
để tạo ra ở trên, so với chỉ trộn cùng giải pháp của riêng tôi sử dụng một sốLinearLayouts
và một sốOnClickListeners
?
Sửa
Đối với câu hỏi cuối cùng của tôi, tôi có thể lưu ý rằng có thể có bất cứ nơi nào từ 1 đến 20+ MainGroups
.
giải pháp của bạn đã được giải quyết ..? –
Tôi chưa bao giờ thực sự giải quyết vấn đề khi tôi được chuyển sang một dự án khác, nhưng câu trả lời của QuickNick chắc chắn sẽ là cách để đi. – kaspermoerch