gpt4 book ai didi

reactjs - 是否可以使用带有React-Navigation(v5)的UIModalPresentationPageSheet或UIModalPresentationFormSheet样式来呈现模态?

转载 作者:行者123 更新时间:2023-12-03 16:11:11 25 4
gpt4 key购买 nike

根据Apple documentation的说法,在iOS 13上呈现模式默认为UIModalPresentationAutomatic,它通常映射到UIModalPresentationPageSheet样式。

同样,react-native-screens appears to support有各种选项,但是到目前为止,我还无法确定是否可以通过react-navigation传递它,或者react-navigation是否正在使用此代码路径。 react-native-screens appears to defaultUIModalPresentationAutomatic,这使我相信react-navigation完全在做其他事情。

是否可以在Stack.Screen中使用这些较小的模式类型来呈现这些Stack.Navigator组件?

这是一个演示该问题的简单React Native应用。

import "react-native-gesture-handler"
import * as React from "react"
import { Button, View, Text } from "react-native"
import { NavigationContainer } from "@react-navigation/native"
import { createStackNavigator } from "@react-navigation/stack"
function HomeScreen({ navigation }) {
return (
<View style={{ flex: 1, alignItems: "center", justifyContent: "center" }}>
<Text>Home Screen</Text>
<Button
title="Go to Details"
onPress={() => navigation.navigate("Details")}
/>
</View>
)
}

function DetailsScreen() {
return (
<View style={{ flex: 1, alignItems: "center", justifyContent: "center" }}>
<Text>Details Screen</Text>
</View>
)
}

const Stack = createStackNavigator()

function App() {
return (
<NavigationContainer>
<Stack.Navigator
mode="modal"
initialRouteName="Home"
screenOptions={{
stackPresentation: "formSheet",
}}
>
<Stack.Screen name="Home" component={HomeScreen} />
<Stack.Screen name="Details" component={DetailsScreen} />
</Stack.Navigator>
</NavigationContainer>
)
}

export default App

不管指定的 stackPresentation如何,它始终以全屏模式显示。如何获得 UIModalPresentationFormSheet行为?

enter image description here

最佳答案

您“只是”需要直接从createNativeStackNavigator使用react-native-screens函数。 react-navigation docs实际上有一段描述如何设置它。
对于上面的示例应用程序,您只需要导入所需的两个函数并更改堆栈初始化,如下所示

import { createNativeStackNavigator } from 'react-native-screens/native-stack'
import { enableScreens } from 'react-native-screens'

enableScreens()
const Stack = createNativeStackNavigator()
然后在 screenOptions组件中设置适当的 Stack.Navigator
<Stack.Navigator
initialRouteName="Home"
screenOptions={{
headerShown: false,
stackPresentation: 'formSheet'
}}
>

关于reactjs - 是否可以使用带有React-Navigation(v5)的UIModalPresentationPageSheet或UIModalPresentationFormSheet样式来呈现模态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62283000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com