Я пытаюсь создать модал, который скользит снизу и закрывает нижнюю часть экрана. Я хочу, чтобы пользователь мог отклонить этот модал, проведя пальцем сверху вниз.
Мне удалось заставить его работать с этой конфигурацией:
<Stack.Navigator mode="modal">
<Stack.Screen name="Main" component={MainScreen}/>
<Stack.Screen
name="Modal"
component={ModalStack}
options={() => ({
gestureEnabled: true,
gestureDirection: "vertical",
gestureResponseDistance: { vertical: Dimensions.get("window").height },
cardStyle: {
backgroundColor: "transparent"
},
})}
/>
</Stack.Navigator>
С модальным стеком:
<Stack.Navigator
headerMode="none"
screenOptions={{cardStyle: {backgroundColor: "transparent"}}}
>
<Stack.Screen
name="ModalScreen"
component={ModalScreen}
/>
</Stack.Navigator>
Моя проблема в том, что gestureEnabled
не похоже, работает, если компонент Stack.Screen не является навигатором. В этой конфигурации я заменил компонент ModalStack
непосредственно на ModalScreen
:
<Stack.Navigator mode="modal">
<Stack.Screen name="Main" component={MainScreen}/>
<Stack.Screen
name="Modal"
component={ModalScreen} // <--------- ONLY CHANGE IS HERE
options={() => ({
gestureEnabled: true,
gestureDirection: "vertical",
gestureResponseDistance: { vertical: Dimensions.get("window").height }
cardStyle: {
backgroundColor: "transparent"
},
})}
/>
</Stack.Navigator>
В этом случае я больше не могу закрывать ModalScreen с помощью пролистывания.
Is gestureEnabled: true
предназначен только для работы, если компонент Stack.Screen является навигатором?