Expo Router中Stack组件外层嵌套LinearGradient无法显示渐变背景的问题求助
Expo Router中Stack组件外层嵌套LinearGradient无法显示渐变背景的问题求助
我刚接触React Native/Expo,遇到了一个难排查的问题,想请教大家:
我用npx create-expo-app创建了默认模板的项目,然后通过npx expo install expo-linear-gradient安装了LinearGradient组件。
一开始我在index.tsx的HomeScreen组件里测试它,代码是这样的:
export default function HomeScreen() { return ( <LinearGradient colors={['#3558A2', '#417DC4', '#FFB7AE']} style={{flex: 1}} > </LinearGradient> ); }
这时候一切正常,全屏都能显示渐变背景。
后来我想把这个渐变设为APP所有页面的全局背景,于是把LinearGradient移到了_layout.tsx里,同时移除了HomeScreen中的渐变代码。修改后的_layout.tsx代码如下:
export default function RootLayout() { const colorScheme = useColorScheme(); const [loaded] = useFonts({ SpaceMono: require('../assets/fonts/SpaceMono-Regular.ttf'), }); if (!loaded) { // Async font loading only occurs in development. return null; } return ( <ThemeProvider value={colorScheme === 'dark' ? DarkTheme : DefaultTheme}> <LinearGradient colors={['#3558A2', '#417DC4', '#FFB7AE']} style={{flex: 1}} > <Stack> <Stack.Screen name="(tabs)" options={{ headerShown: false }} /> <Stack.Screen name="+not-found" /> </Stack> <StatusBar style="auto" /> </LinearGradient> </ThemeProvider> ); }
但这时候渐变完全不显示了,也没有任何报错,页面只有默认的白色背景。
我试过各种方法:调整flex属性、改变LinearGradient的嵌套位置(比如包在Stack外面/里面)等等,都没有效果。
有没有人能解释这是怎么回事呀?
内容来源于stack exchange
相关产品推荐
相关产品推荐

