нормальный способ организовать мульти левел tree view? есть expandable view, но там макс вложенность = 1 чайлд, а надо N
Обычный recycler, с контролем, допустим во вьюмоделе (иди где-то в другом месте, в зависимости какую архитектуры используете). Под "контролем" я имею ввиду что отлавливать клики во вью холдере и слать в вьюмодель (или что там у вас) и добавлять / удалять определённые элементы, после чего submitList на адаптере (адаптер начледовать от ListAdapter). Я бы так делал
спасибо за ответ, я думал про удаление\добавление элементов, но решил, что это не самый подходящий по перфомансу вариант для такого действия, как раскрытия ноды, т.к. в теории ее можно открывать\закрывать N раз в секунду, а внутри может быть довольно много элементов
Есть проблема. Нужно , чтоб элементы из списка в листадаптере имели другие ссылки в памяти относительно элементов, которые вы будите туда класть.иначе меняя флаг expanable во вью модели диффутилс не сработает
сделал через скрытие элементов списка itemView.layoutParams.height = 0 работает нормально. это если очень коротко. если чуть длиннее - то по факту у меня под капотом простой список, но с помощью вьюх все выглядит так, как будто это дерево
Можно просто мапить дерево в линейный список и показывать элементы с нужными отступами в соответствии с их открытым/закрытым состоянем. И не нужно будет играться с параметрами лэйаутов.
Можно, если нет требования иметь возможность скрыть/раскрыть
Перестраивается список, адаптеру говорят в нужном месте notify и опять не нужно играться с отступами 😁
На гите вагон recyclerview treeview и куча навопоченых адаптеров, бери на любой вкус. Я раньше пробовал вроде эту либу иг скрина, работает вполне не плохо
Если скинешь хоть одну нормальную, буду признателен, либе со скрина уже 5 лет просто, я надеялся сделали уже чё то поинтереснее
Ну как сказать, либы есть и новые (даже есть две таких комбайн либы где много чего, включая это). https://github.com/cymcsg/UltimateRecyclerView https://github.com/TellH/RecyclerTreeView https://github.com/nuptboyzhb/TreeRecyclerView https://github.com/LeeReindeer/Tree2View https://github.com/mikepenz/FastAdapter https://github.com/h6ah4i/android-advancedrecyclerview https://github.com/bmelnychuk/AndroidTreeView https://github.com/CymChad/BaseRecyclerViewAdapterHelper Есть ещё, но щас так не найду, это из закладок. Главное принцип понять. то что, ей 5 лет, это не делает её не рабочей, обнови зависимости и всё.
Сохранил, спасибо
Обсуждают сегодня