Многоуровневый просмотр: расширяемый список просмотра

#android #treeview #expandablelistview

#Android #древовидный #расширяемый список просмотра

Вопрос:

Я пытаюсь написать многоуровневое дерево. Я посмотрел на расширяемый список просмотра, но он поддерживает только два уровня. Я просмотрел другие вопросы (SO) и сообщения, и самый многообещающий пост, который я нашел, это http://mylifewithandroid.blogspot.com/2011/02/3-level-expandable-lists.html

Я понимаю, что мне придется написать что-то пользовательское для обработки многоуровневого дерева. Какой наилучший рекомендуемый подход использовать? Могу ли я добавить exapandablelistview в качестве дочернего элемента к exapanablelistview??

Спасибо

Комментарии:

1. найдена еще одна ссылка, которая делает что-то подобное techdroid.kbeanie.com/2010/09 /…

2. также найдено это code.google.com/p/tree-view-list-android

3. Смотрите ссылку на мой проект, где можно получить N-уровневый просмотр древовидного списка. github.com/Jaldips/Android-MultilevelTreeListView

4. У меня был хороший опыт работы с tree-view-list-android , который сейчас находится на github.com/Polidea/tree-view-list-android . В последнее время особой активности не было, но код работает, и я получил от него желаемый результат.

Ответ №1:

Вы можете достичь n-го уровня ExpandableListView , если будете использовать его со своим пользовательским BaseExpandableListAdapter .

В этом расширенном адаптере вы переопределяете

 public View getGroupView(int groupPosition, boolean isExpanded, 
    View convertView, ViewGroup parent)
  

метод, назначьте экземпляр BaseExpandableListAdapter для convertView и верните его.

Если у вас переопределены все необходимые методы в вашем адаптере, это должно сработать.

Ответ №2:

Это возможно, но это сделало бы структуру графического интерфейса слишком сложной для реализации.

Во-первых, вы должны знать, что элементы, отображаемые в ExpandableListView , задаются с помощью BaseExpandableListAdapter . Вы должны спроектировать и реализовать такое же количество адаптеров, что и ваши элементы уровня 2, чтобы списки уровня 3 могли быть правильно отображены для каждого элемента уровня 2.

Я бы посоветовал вам переработать графический интерфейс. Многоуровневость ExpandableListView не только усложняет код, но, возможно, и портит экран.