Как построить математическую формулу, соответствующую индексу с представленными значениями - PullRequest
2 голосов
/ 08 мая 2019

У меня есть эта функция для централизации элемента в Flatlist (по горизонтали):

centralizeItem = (index) => {
 const WIDTH = scale(95)
 let centerSize

 if (index === 0) centerSize = (WIDTH*1.5) * -1

 if (index === 1) centerSize = (WIDTH/2) * -1

 if (index === 2) centerSize = (WIDTH/2)

 if (index === 3) centerSize = (WIDTH*(index/2))

 if (index === 4) centerSize = (WIDTH*(index/2+0.5)) // 2.5

 if (index === 5) centerSize = (WIDTH*(index/2+1)) // 3.5

 if (index === 6) centerSize = (WIDTH*(index/2+1.5)) //4.5

  return centerSize
}

Эта формула возвращает значение смещения для прокрутки значения y с использованием

this.refs.listRef.scrollToOffset({offset: this.centralizeItem(index) })

Приведенный выше код срабатывает, когда элемент выбран

Но Flatlist отображает много данных, а не только индекс 7, и эта формула неосуществима.

Мне нужна следующая формулаприведенные выше изменения в функции

1 Ответ

1 голос
/ 08 мая 2019

Вы можете взять формулу и рассчитать коэффициент.

centralizeItem = index => scale(95) * (index - 1.5);
...