答案 0 :(得分:12)
将以下内容添加到navigationOptions标题样式。
const AppNavigation = StackNavigator(
{
'The First Screen!': { screen: FirstScreen },
},
{
navigationOptions: {
header: {
style: {
elevation: 0, // remove shadow on Android
shadowOpacity: 0, // remove shadow on iOS
},
},
},
},
);
文档还不是很好,但您可以在React Navigation Docs中了解navigationOptions。
答案 1 :(得分:8)
以下适用于我,原始样式表使用"borderBottomWidth" on iOS:
const navigator = StackNavigator(screens, {
navigationOptions: {
headerStyle: {
elevation: 0,
shadowOpacity: 0,
borderBottomWidth: 0,
}
}
});
答案 2 :(得分:3)
这对我有用:
export const AppNavigator = StackNavigator(
{
Login: { screen: LoginScreen },
Main: { screen: MainScreen },
Profile: { screen: ProfileScreen },
},
navigationOptions: {
headerStyle: {
elevation: 0,
shadowOpacity: 0,
}
}
);
或
export const AppNavigator = StackNavigator(
{
Login: { screen: LoginScreen },
Main: { screen: MainScreen },
Profile: { screen: ProfileScreen },
},
header: {
style: {
elevation: 0, //remove shadow on Android
shadowOpacity: 0, //remove shadow on iOS
}
}
);
答案 3 :(得分:3)
在反应导航版本5.x.x中:
<Tab.Navigator
tabBarOptions={{
activeTintColor: colors.darkGray,
labelStyle: { fontSize: 12 },
style: { backgroundColor: colors.white, borderTopWidth: 0, elevation: 0, shadowOpacity: 0, },
}}
>
答案 4 :(得分:3)
在v5中,您可以执行以下操作
<Stack.Navigator>
<Stack.Screen
name="Example"
component={ExampleComponent}
options={{
headerStyle: {
elevation: 0,
shadowOpacity: 0
},
}}
/>
</Stack.Navigator>
答案 5 :(得分:2)
尝试传递cardStyle: { shadowColor: 'transparent' }
export const AppNavigator = StackNavigator(
{
Login: { screen: LoginScreen },
Main: { screen: MainScreen },
Profile: { screen: ProfileScreen },
},
cardStyle: { shadowColor: 'transparent' }
根据这个问题React Navigation Stack Navigator default shadow styling
答案 6 :(得分:2)
我不知道这个答案有多重要,但是分享我的代码以告诉您,该代码对反应导航版本:3.9.1
const AppNavigation = StackNavigator(
{
FirstScreen,
},
{
defaultNavigationOptions: {
headerStyle: {
elevation: 0, //for android
shadowOpacity: 0, //for ios
borderBottomWidth: 0, //for ios
},
},
})
答案 7 :(得分:2)
在反应导航V5中,您如何执行此操作:
在所有屏幕上做到这一点,将com.companyName.X.NotificationServiceExtension
属性应用到screenOptions
例如:
<Stack.Navigator>
要针对特定屏幕执行此操作,请将 <Stack.Navigator
screenOptions={{
headerStyle: {
elevation: 0,
shadowOpacity: 0
},
}}
/>
</Stack.Navigator>
道具应用于options
例如:
<Stack.Screen>
答案 8 :(得分:1)
过去几个小时我一直试图解决这个问题,并最终找到了解决方案。 我的问题是,标题与其他组件的Z位置不同。
尝试:
const styles = {
headerStyle: {
zIndex: 1
}
}
答案 9 :(得分:1)
截至2019年,此答案在版本3中无效。
新方法是:
$('#fullpage').fullpage();
答案 10 :(得分:1)
我正在使用React Navigation v5,我使用以下代码:
const HomeStackScreen = ({navigation}) => (
<HomeStack.Navigator
initialRouteName="Home"
headerMode="screen"
mode="modal"
screenOptions={{
headerStyle: {
backgroundColor: COLORS.WHITE,
elevation: 0, // remove shadow on Android
shadowOpacity: 0, // remove shadow on iOS
borderBottomWidth: 0,
},
headerTintColor: COLORS.GREY,
headerTitleStyle: {
fontFamily: 'Montserrat-SemiBold',
fontWeight: '600',
fontSize: 18,
},
}}>
<HomeStack.Screen
name="Home"
component={Home}
options={{
title: 'Expanded',
headerLeft: () => <RenderHeaderLeft />,
headerRight: () => <RenderHeaderRight navigation={navigation} />,
headerTitleAlign: 'left',
}}
/>
<HomeStack.Screen name="HomeDetails" component={HomeDetails} />
</HomeStack.Navigator>
);
在headerStyle内放置shadowOpacity和高程
答案 11 :(得分:0)
你可以试试这个,它对我有用!
export const SignedOut = StackNavigator({
SignIn: {
screen: SignInScreen,
navigationOptions: {
title: "SignIn",
headerStyle: {
shadowOpacity: 0, // This is for ios
elevation: 0 // This is for android
}
}
}
});
答案 12 :(得分:0)
阴影是通过高程实现的,请使用:
headerStyle: {
backgroundColor: 'white',
shadowColor: 'transparent',
elevation: 0,
},
答案 13 :(得分:-2)
对于 React Native Navigation 5
<Stack.Screen
name={"Profile"}
component={Profile}
options={{
headerTitle: "Profile",
headerHideShadow: true,
}}
/>
或
<Stack.Navigator
screenOptions={{
headerHideShadow: true,
}}
>