Я хочу, чтобы пользователи могли перемещаться по экрану, похожему на 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
},
}