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

getItemLayout для списка с разделителями

Условие

Список с элементами одинаковой высоты itemHeight и разделителями высотой separatorHeight между элементами (после последнего разделителя нет). Сверху у списка шапка высотой headerHeight. Напишите itemLayout(index, itemHeight, separatorHeight, headerHeight), возвращающую объект { length, offset, index } для getItemLayout, где offset это расстояние от начала содержимого до верхнего края элемента.

Примеры

itemLayout(0, 72, 1, 0) // {"length":72,"offset":0,"index":0}
itemLayout(1, 72, 1, 0) // {"length":72,"offset":73,"index":1}
itemLayout(10, 72, 1, 0) // {"length":72,"offset":730,"index":10}

Как подойти

Подсказки: 1
  1. Посчитайте, сколько элементов и разделителей находится выше элемента index.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

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