Одна из причин, по которой ExpandableListView
поддерживает только два уровня глубины, заключается в том, что очень трудно сделать дерево n-уровня удобным для пользователя.Просто представьте себе массу на экране пользователя, если он или она перейдет на 5-й уровень.
Но, тем не менее, вот подход, который я бы выбрал.Я еще не реализовал это, но это должно быть выполнимо.
Введите "Навигационную панель" вверху (как в Windows Explorer или у некоторых сайтов):
Root> элемент 1> подэлемент 2> ...
Используйте `Расширяемый список, чтобы показать текущий уровень и следующий уровень.
- Если пользователь нажимает на элемент, вы лишаете законной силы данные и повторно заполняете
ExpandbleListView
следующими уровнями.
Ее пример:
> Root
---------------
Item 1
Subitem 1
Subitem 2
Subitem 3
Item 2
Subitem 4
Subitem 5
Item 3
Subitem 6
Пользователь нажимает наSubitem 4
и видит:
> Root > Item 2
---------------
Subitem 4
SubSubItem 1
SubSubItem 2
SubSubItem 3
Subitem 5
SubSubItem 4
SubSubItem 5
Это не тривиально для реализации, но не должно быть слишком сложным.Это дает навигацию внутри одного действия и использует высоко оптимизированное ExpandableListView
управление.Вам нужно только реализовать пользовательский адаптер.