Как решить проблему с анимацией React Native Scroll Animation во время медленной прокрутки?

Я сделал здесь пример кода с Snack expo анимированным заголовком

Проблема, с которой я сталкиваюсь, заключается в том, что моя анимация недостаточно плавная. Похоже, трясет.

Демонстрационное видео видео на YouTube

Кажется, я не могу найти, в чем здесь проблема, а также пытался возиться с реквизитами scrollEventThrottle, alwaysBounceVertical, bounces, bouncesZoom в ScrollView.




Ответы (2)


Я понимаю, в чем проблема, и проблема не в производительности.

Проблема связана со стилем в заголовке. Добавление позиции к абсолютной решит эту проблему.

Но есть еще одна проблема, которая возникает, когда позиция является абсолютной: компонент внутри заголовка, такой как TextInput, не будет отображаться при возникновении события касания.

Чтобы решить эту новую проблему, вы должны добавить файл zIndex. Дополнительное руководство по zIndex

Анимированный заголовок исправлен

person Firman Jamal    schedule 24.01.2020

Попробуйте добавить useNativeDriver:

onScroll={
    Animated.event([
        {
         nativeEvent: {
            contentOffset: {
                y: scrollY,
           },
         },
      },
    ], 
    { useNativeDriver: true })
}

Но я думаю, что в React Native ScrollView не должен работать с очень длинным дублированным контентом. Я предлагаю вам использовать flatlist для вашего варианта использования.

person Andus    schedule 20.01.2020
comment
Привет, спасибо за ваш ответ. Что ж, длинный дублированный контент используется в демонстрационных целях в Snack. Проблема все еще сохраняется, даже когда я пытался ограничить количество компонентов в моем реальном коде проекта, чтобы имитировать более короткую длину прокрутки. Я не совсем уверен, подходит ли FlatList для моего варианта использования. Добавление useNativeDriver выдаст мне ошибку this.props.onScroll не является функцией - person Firman Jamal; 20.01.2020