Расширенные лаги RecycleView - PullRequest
0 голосов
/ 23 апреля 2020

Я реализовал RecycleView аналогично ExpandedListView, но когда категории свернуты (элементы в категории скрыты), возникают некоторые лаги, причина этого в том, что onBindViewHolder вызывается очень быстро, например, если в категории 20 элементы и скрытые элементы onBindViewHolder будут вызываться 20 раз в один момент.

Существуют лаги, даже если onBindViewHolder пуст

ViewHolders содержат меньше, чем 5 элементов

Одним из решений является предоставление list без hidden элементов, но я бы хотел узнать, как работает расширенный просмотр списка в этой ситуации, поскольку расширенный просмотр списка получает все элементы.

Кто-нибудь знаком с этой проблемой?

1 Ответ

1 голос
/ 29 апреля 2020

Вы должны создать представления своего внутреннего списка перед расширением, чтобы быстро развернуть и свернуть. Однако повторное создание каждого списка снова не является хорошим вариантом, поскольку раздувание внутренних элементов в действии, например, бросание, вызывает сбои. Вы должны использовать внутренние виды переработчика в своих предметах, однако эти представления переработчика имеют специальную функцию. Все внутренние представления переработчика зависят от одного и того же пула представлений переработчика, поэтому, как только вы создадите элементы списка для элемента во внешнем представлении переработчика, вы можете использовать те же представления в другом внешнем представлении переработчика. Таким образом, система создает, например, 10 элементов для первого представления внутреннего переработчика, а затем, когда расширяется другое представление внутреннего переработчика, также используются те же элементы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...