Как измерить дополнительные вызовы findViewByID - RecyclerView - PullRequest
0 голосов
/ 25 июня 2019

Допустим, что каждый элемент в вашем списке RecyclerView содержит четыре вложенных View с, и вы не кэшируете эти представления в ViewHolder. Если на экране помещается восемь элементов, примерно, сколько дополнительных findViewById() вызовов будет сделано, если вы прокрутите 30 элементов?

В дополнение к восьми элементам, которые помещаются на экране, предположим, что для плавной прокрутки необходимы два дополнительных элемента.

Я думаю, что ответ 60.

Я прав?

1 Ответ

1 голос
/ 25 июня 2019

Предполагая прокрутку 30 элементов, каждый элемент привязывается к данным только один раз.

Каждый элемент имеет 4 вида внутри, что делает 4 вызова за bind.

Всего findViewById() звонков будет

30 * 4 = 120.

Не следует совершать вызовы для 2 представлений, поскольку они еще не связаны.

Ваш вопрос

сколько дополнительных вызовов findViewById () будет сделано

Дано:

8 элементов видно. 2 предмета скрыты.

Если бы вы кэшировали просмотры, общее количество вызовов будет:

(8 + 2) * 4 = 40.

Дополнительные вызовы будут 120 - 40 = 80 .

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