Как можно провести пальцем по стековому навигатору? - PullRequest
0 голосов
/ 04 апреля 2019

Я хочу, чтобы пользователи могли перемещаться по экрану, похожему на Instagram (при пролистывании влево вы переходите к вашим сообщениям, анимация соответствует скорости пролистывания, если вы удерживаете нажатие и медленно проводите, экран перемещается на большой) в стековом навигаторе.

Я не хочу вкладывать нижний / верхний навигатор для этого.Я смог настроить свойство transitionConfig для аналогичной анимации, но анимация запускается и не реагирует на жест (медленное перелистывание заставляет его медленно показывать следующий экран и т. Д.). Оно прекрасно работает только при перелистывании, чтобы вернуться назад, ноне переходить на новый экран.

PS Я хочу использовать для этого стек-навигатор, а не прокручиваемый вид или что-то подобное

export default createStackNavigator({
  bottomNavigator,
  Profile: Profile,
  tempScreen: TempScreen
}, {
    transitionConfig: (prop) => NavigationConfig(prop)
  })

Вот анимация, возвращаемая NavigationConfig

const trackFromRightToLeft = {
    transitionSpec: {
        duration: 350
    },
    screenInterpolator: sceneProps => {
        const { position, layout, scene } = sceneProps
        const thisSceneIndex = scene.index
        const width = layout.initWidth

        const translateX = position.interpolate({
            inputRange: [thisSceneIndex - 1, thisSceneIndex, thisSceneIndex + 1],
            outputRange: [width, 0, -width]
        })

        const slideFromRight = { transform: [{ translateX }] }

        return slideFromRight
    },
}

1 Ответ

0 голосов
/ 04 апреля 2019

вы можете использовать пейджер из response-native-жест-обработчик не совсем то, что вы хотели, но с некоторой логикой вы можете достичь этого

...