Передача событий касания через ScrollView

Я пытаюсь реализовать интерфейс, где есть полностраничный <ScrollView /> с <View />, расположенный абсолютно под ним. <ScrollView /> имеет верхнюю часть, поэтому изначально отображается <View />, а затем <ScrollView /> прокручивается, чтобы закрыть ее. Проблема, конечно же, в том, что <View /> не получает прикосновений, поскольку их съедает ответчик <ScrollView />.

Есть ли какой-либо путь для реализации или подкласса <View />, чтобы вы могли передавать события через базовые элементы?

Ответ 1

Вы должны использовать Animated.View, который принимает ScrollView y смещение в качестве Animated.Value prop. Затем вы можете использовать это значение для выполнения анимаций при прокрутке ScrollView. Свиток поймает анимацию панорамы и передаст ее через реквизиты для тех, кто в ней нуждается.

Одним из лучших образцов кода, которые вы найдете для этого, является приложение для Facebook F8. Именно этот файл: https://github.com/fbsamples/f8app/blob/b5df451259897d1838933f01ad4596784325c2ad/js/common/ListContainer.js. В этом файле ParallaxBackground получает смещение Animated.Value, которое поступает из дочерних элементов ListView.