Я использую навигационную библиотеку реагирования, и я хотел бы, чтобы представление корневого стека могло выдвигать некоторые экраны с использованием анимации справа налево и некоторых экранов снизу вверх.Основная проблема, с которой я столкнулся, заключается в том, что жест панорамирования при отклонении экранов остается одинаковым для всех экранов.
Мои маршруты:
const MODAL_ROUTES = [
SceneKeys.EditProfileNavigator,
SceneKeys.PicturePreview
]
const navigator = createStackNavigator(
{
[SceneKeys.Main]: { // MAIN TAB BAR SCREEN
screen: Main,
},
// Profile edit - comes from bottom, should not be dismissable by gestures
[SceneKeys.EditProfileNavigator]: {
screen: EditProfileNavigator,
navigationOptions: {
gesturesEnabled: false,
}
},
// Picture preview - comes from bottom, should be dismissible with gesture top to bottom
[SceneKeys.PicturePreview]: {
screen: PicturePreview,
},
// comes from right, should be dismissible by swiping from the left
[SceneKeys.Conversation]: {
screen: Conversation
}
},
{
headerMode: 'none',
transitionConfig: (transitionProps, prevTransitionProps) => {
const isModal = MODAL_ROUTES.some(
screenName =>
screenName === transitionProps.scene.route.routeName ||
(prevTransitionProps && screenName === prevTransitionProps.scene.route.routeName)
)
return StackViewTransitionConfigs.defaultTransitionConfig(
transitionProps,
prevTransitionProps,
isModal
)
}
},
)
Все анимации и переходы работают нормально, однако основная проблема заключается в том, что экран PicturePreview
можно отклонить с помощью жеста панорамирования слева направо - я хочу сверху внизувольнение жестом панорамирования для этого экрана в частности.
Установка режима полного стека на modal
делает Conversation
переход экрана снизу, когда я хочу переход справа налево