169 похожих чатов

Всем привет, друзья, товарищи, коллеги, кто нибудь знает хоть один

нормальный способ организовать мульти левел tree view? есть expandable view, но там макс вложенность = 1 чайлд, а надо N

11 ответов

10 просмотров

Обычный 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 лет, это не делает её не рабочей, обнови зависимости и всё.

Сергей-Маслов Автор вопроса

Сохранил, спасибо

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта