删除某些屏幕的顶部导航栏
Remove top navigation bar for certain screens
有没有办法只为特定屏幕删除顶部导航栏?我正在使用反应导航。
我已经尝试过以下方法:
header: { visible: false }
但它只隐藏了导航栏。导航栏space还是不能用
提前致谢!
这是我如何使用 StackNavigator 进行挖掘的示例:
const stackN = StackNavigator({
Screen1 : {
screen: Screen1,
navigationOptions: {
header: null,
}
},
Home : {
screen: HomeScreen,
navigationOptions: ({navigation}) => ({
title: 'Home',
headerStyle: styles.headerStyle,
headerTitle: <Text>Home</Text>,
headerLeft : null,
headerRight: null,
})
},
}, {headerMode: 'screen'})
所以每个屏幕都有自己的导航选项。可能有一种共享导航选项的方法,但我暂时没有研究它。
使用 createStackNavigator 时,可以移除顶部导航栏,如下所示。
const AppStack = createStackNavigator({ Home: MainTabNavigator }, { headerMode: 'none' });
使用navigationOptions: { header: null }
删除顶部导航栏。
示例代码:
import { createStackNavigator, createAppContainer } from 'react-navigation';
import {Login} from './app/components/login/Login';
import {Register} from './app/components/register/Register';
import {Home} from './app/components/home/Home';
const AppNavigator = createStackNavigator(
{
Login: {
screen: Login,
navigationOptions: {
header: null,
}
},
Register: {
screen: Register,
navigationOptions: {
header: null,
}
},
Home: {
screen: Home,
navigationOptions: {
header: null,
}
},
},
{
initialRouteName: "Login"
}
);
export default createAppContainer(AppNavigator);
使用 navigationOptions: { headerShown: false } 而不是 navigationOptions: { header: null } 删除顶部导航栏。
"headerShown : false " 在最新的 React Native 版本中
我这样使用 headerShown
标志:
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import 'react-native-gesture-handler';
import Welcome from "./compenents/Welcome";
import Home from "./compenents/Home";
const Stack = createStackNavigator();
export default function App() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Welcome" component={Welcome} options={{ headerShown: false }} />
<Stack.Screen name="Home" component={Home} />
</Stack.Navigator>
</NavigationContainer>
);
}
2020 => v5 :
删除所有屏幕的标题
Stack.Navigator.defaultProps = {
headerMode: 'none',
};
options={{ headerShown: false }}
你已经完成了..祝你有美好的一天
import { createStackNavigator } from "@react-navigation/stack";
import HomeScreen from "./screens/HomeScreen";
import NewsDetailScreen from "./screens/NewsDetailScreen";
import React from "react";
const HomeStack = createStackNavigator();
const HomeScreenStack = () => {
return (
<HomeStack.Navigator >
<HomeStack.Screen
name="homeScreen"
component={HomeScreen}
options={{ title: "Home" }}
/>
<HomeStack.Screen
name="newsDetailScreen"
component={NewsDetailScreen}
options={{
title: "News Detail",
headerShown:false
}}
/>
</HomeStack.Navigator>
);
};
export default HomeScreenStack;
有没有办法只为特定屏幕删除顶部导航栏?我正在使用反应导航。
我已经尝试过以下方法:
header: { visible: false }
但它只隐藏了导航栏。导航栏space还是不能用
提前致谢!
这是我如何使用 StackNavigator 进行挖掘的示例:
const stackN = StackNavigator({
Screen1 : {
screen: Screen1,
navigationOptions: {
header: null,
}
},
Home : {
screen: HomeScreen,
navigationOptions: ({navigation}) => ({
title: 'Home',
headerStyle: styles.headerStyle,
headerTitle: <Text>Home</Text>,
headerLeft : null,
headerRight: null,
})
},
}, {headerMode: 'screen'})
所以每个屏幕都有自己的导航选项。可能有一种共享导航选项的方法,但我暂时没有研究它。
使用 createStackNavigator 时,可以移除顶部导航栏,如下所示。
const AppStack = createStackNavigator({ Home: MainTabNavigator }, { headerMode: 'none' });
使用navigationOptions: { header: null }
删除顶部导航栏。
示例代码:
import { createStackNavigator, createAppContainer } from 'react-navigation';
import {Login} from './app/components/login/Login';
import {Register} from './app/components/register/Register';
import {Home} from './app/components/home/Home';
const AppNavigator = createStackNavigator(
{
Login: {
screen: Login,
navigationOptions: {
header: null,
}
},
Register: {
screen: Register,
navigationOptions: {
header: null,
}
},
Home: {
screen: Home,
navigationOptions: {
header: null,
}
},
},
{
initialRouteName: "Login"
}
);
export default createAppContainer(AppNavigator);
使用 navigationOptions: { headerShown: false } 而不是 navigationOptions: { header: null } 删除顶部导航栏。
"headerShown : false " 在最新的 React Native 版本中
我这样使用 headerShown
标志:
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import 'react-native-gesture-handler';
import Welcome from "./compenents/Welcome";
import Home from "./compenents/Home";
const Stack = createStackNavigator();
export default function App() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Welcome" component={Welcome} options={{ headerShown: false }} />
<Stack.Screen name="Home" component={Home} />
</Stack.Navigator>
</NavigationContainer>
);
}
2020 => v5 :
删除所有屏幕的标题
Stack.Navigator.defaultProps = {
headerMode: 'none',
};
options={{ headerShown: false }}
你已经完成了..祝你有美好的一天
import { createStackNavigator } from "@react-navigation/stack";
import HomeScreen from "./screens/HomeScreen";
import NewsDetailScreen from "./screens/NewsDetailScreen";
import React from "react";
const HomeStack = createStackNavigator();
const HomeScreenStack = () => {
return (
<HomeStack.Navigator >
<HomeStack.Screen
name="homeScreen"
component={HomeScreen}
options={{ title: "Home" }}
/>
<HomeStack.Screen
name="newsDetailScreen"
component={NewsDetailScreen}
options={{
title: "News Detail",
headerShown:false
}}
/>
</HomeStack.Navigator>
);
};
export default HomeScreenStack;