React Native中createNativeStackNavigator的headerStyle无法隐藏头部阴影问题求助
你当前使用的是createNativeStackNavigator(原生栈导航器),它的header样式配置规则和旧版JS实现的栈导航器不同,你之前写的elevation、shadowOpacity属于旧JS栈的样式属性,原生栈不会识别这些配置,所以阴影隐藏不生效。同时你代码里的defaultNavigationOptions是React Navigation 6及以上版本已经废弃的属性,不会生效可以直接删除。
解决方法
直接在screenOptions配置里添加headerShadowVisible: false即可,这是原生栈专门用来控制header阴影是否显示的属性,可同时覆盖iOS的阴影、安卓的elevation效果和底部边框。
修改后的完整代码如下:
const Stack = createNativeStackNavigator(); <Stack.Navigator screenOptions={({navigation}) => ({ headerBackTitleVisible: false, title: '', // 添加这一行即可隐藏阴影 headerShadowVisible: false, headerStyle: { backgroundColor: 'papayawhip', // 安卓如果还有残留底部边框可以保留这行,否则可以删除 borderBottomWidth: 0, }, headerLeft: () => ( <AppMaterialIcon onPress={() => navigation.goBack()} name={'chevron-left'} style={{marginLeft: -10}} size={35} color={colors.kermitGreen} backgroundColor={colors.white} /> ), })}> <Stack.Screen name="ForgotPasswordEmail" component={ForgotPasswordEmailScreen} /> </Stack.Navigator>
内容的提问来源于stack exchange,提问作者Sanaullah Javeid
相关产品推荐
相关产品推荐

