#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
не только усложняет код, но, возможно, и портит экран.