Выбор ответа Middle Списки и производительность обновлено

FlatList: getItemLayout

Вопрос

Что даёт getItemLayout у FlatList?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Положение элемента известно без рендера: нет измерений, надёжный scrollToIndex. Когда высота элементов известна (одинаковая или вычислимая), getItemLayout возвращает { length, offset, index }, и списку не нужно рендерить элементы, чтобы узнать их положение.

Варианты ответа

  1. Список автоматически вычисляет высоту элементов разного размера заранее
  2. Положение элемента известно без рендера: нет измерений, надёжный scrollToIndexправильный ответ
  3. Он включает переиспользование компонентов строк, как RecyclerView делает на Android
  4. Он позволяет отсортировать элементы списка по их высоте перед отрисовкой

Разбор

Когда высота элементов известна (одинаковая или вычислимая), getItemLayout возвращает { length, offset, index }, и списку не нужно рендерить элементы, чтобы узнать их положение. Это ускоряет первую отрисовку и прыжок к элементу. Для элементов разной неизвестной высоты он не подходит: неверный getItemLayout ломает прокрутку. Переиспользование это FlashList.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме