По скорости, я полагаю, вы имеете в виду пикселы/секунду, правильно? Возможно, вам придется поддерживать таймер и использовать метод onScroll
для получения текущей высоты прокрутки.
<ScrollView onScroll={this.handleScroll} />
handleScroll
вычислит скорость. Код может потребовать уточнения.
handleScroll: function(event: Object) {
console.log((old_offset - event.nativeEvent.contentOffset.y)/time);
old_offset = event.nativeEvent.contentOffset.y;
}
Initialize old_offset назад в верхней части файла, как old_offset=0
Как получить time
? Вы можете использовать performance.now()
. Он поддерживается хромом, а также мозилла.
Не использовать new Date()
. Настоятельно рекомендуется сообществом
handleScroll: function(event: Object) {
var time = last_time_scroll_completed - performance.now()
console.log((old_offset - event.nativeEvent.contentOffset.y)/time);
old_offset = event.nativeEvent.contentOffset.y;
last_time_scroll_completed = performance.now();
}
ОБРАТИТЕ ВНИМАНИЕ
Это просто понятие (почти псевдо-код). Я не пробовал этот код, он может вообще не работать. Это то, что я сделал на лету. Удачи!