В настоящее время я работаю над проектом, в котором мне нужно что-то вроде следующего:
- 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)
- ...
В лучшем случае ExpandableListView
внутри ExpandableListView
внутри ExpandableListView
будет ExpandableListView
- так что 3 слоя ExpandableListView
:
-
MainGroup
будет содержать только другойExpandableListView
. -
SubGroup
будет содержать другиеExpandableListView
, за исключением последних двух, которые всегда будутChildViews
. (Я думаю, что эти два могут быть заменены только наSubSubGroup
) -
SubSubGroup
всегда будет содержатьChildViews
.
Моя проблема в том, что я думаю, что не понимаю основных принципов того, как макеты ExpandableListView
это дети. Я просмотрел такие примеры, как , но не могу окунуться в функциональность.
Я попробовал просто добавить ExpandableListView
в качестве дочернего в другое, но что-то не работает, поскольку только первый элемент внутреннего ExpandableListView
отображается, если вы расширяете одну из внешних групп. Однако я могу установить высоту контейнера внешних групп вручную, чтобы сделать его достаточно большим, чтобы показать все элементы во внутреннем ExpandableListView
. Чтобы быть оптимальным, расчет высоты должен, конечно, выполняться "на лету".
Итак, чтобы получить более серьезные вопросы:
- Может кто-нибудь дать мне объяснение жизненного цикла
ExpandableListView
"(под этим я подразумеваю создание, повторное использование представлений, расширение/сбой слушателей), в том числе:- Как и когда
ExpandableListView
уведомляется о том, что дочерний элемент расширен или скомпенсирован? - Как
ExpandableListView
знает, сколько места сделать, чтобы все дети вписывались в контейнер группы?
- Как и когда
- Какая польза от использования
ExpandableListView
для создания выше, по сравнению с просто смешиванием моего собственного решения с использованием некоторыхLinearLayouts
и некоторыхOnClickListeners
?
Edit
Для моего последнего вопроса я мог бы заметить, что может быть от 1 до 20+ MainGroups
.