在React Native应用程序中隐藏导航栏的3种方法
以下是在 React Native 应用程序中隐藏导航栏的 3 种方法。如果您使用 React Navigation StackNavigator 制作应用程序,您可以在屏幕顶部找到导航栏/操作栏。如果您在 StackNavigator 的第一个屏幕上,它将显示简单的导航栏,但如果您导航到下一个屏幕,它将显示返回箭头以返回。
有时你不想在屏幕顶部显示导航栏,因此为了隐藏导航栏,我们可以使用 headerShown: false
。
要隐藏标题,请使用以下选项。
推荐:React Native使用最新导航将屏幕从导航抽屉中切换出来
隐藏导航栏的选项
1. 对于单屏,您可以设置 headerShown: false 在导航选项中使用 useLayoutEffect 钩子
React.useLayoutEffect(() => {
navigation.setOptions({headerShown: false});
}, (navigation));
2. 对于单屏,可以在 Stack.Screen 中设置 headerShown:null
3. 使用 Stack.Navigator 中的 screenOptions 一次性隐藏所有屏幕的标题
.......
如果您想在单击按钮时动态隐藏标题,那么您可以访问我们关于按下按钮时隐藏 React 导航标题的帖子。
在此示例中,您可以看到如何隐藏任何屏幕的标题。请查看注释以了解如何以不同的方式隐藏标题。我们将使用 react-navigation 将导航栏放在屏幕顶部。让我们开始吧。
制作 React Native 应用
开始使用 React Native 将帮助您更多地了解如何创建 React Native 项目。我们将使用 react native 命令行界面来制作我们的 React Native 应用程序。
如果您之前安装了全局 react-native-cli 包,请将其删除,因为它可能会导致意外问题:
npm uninstall -g react-native-cli @react-native-community/cli
运行以下命令创建一个新的 React Native 项目
npx react-native init ProjectName
如果你想使用特定的 React Native 版本启动新项目,你可以使用 –version 参数:
npx react-native init ProjectName --version X.XX.X
注意如果上述命令失败,你可能有旧版本的 react-native
或者 react-native-cli
已全局安装在您的电脑上。尝试卸载 cli 并使用 npx 运行 cli。
这将在您的项目目录中创建一个项目结构,其中有一个名为 App.js 的索引文件。
安装依赖项
为了导航,我们需要添加 react-navigation
以及其他支持依赖项。
要安装依赖项,请打开终端并进入你的项目
cd ProjectName
1. 安装 react-navigation
npm install @react-navigation/native --save
2. 其他支持库 react-native-screens
和 react-native-safe-area-context
npm install react-native-screens react-native-safe-area-context --save
react-native-screens
软件包需要一个额外的配置步骤才能在 Android 设备上正常工作。编辑 MainActivity.java
文件位于 android/app/src/main/java//MainActivity.java
。
将以下代码添加到 MainActivity
班级:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(null);
}
并确保在此文件顶部的包语句下方添加以下导入语句:
import android.os.Bundle;
需要进行此更改以避免与视图状态在 Activity 重启时不一致而导致的崩溃。
3. 安装 Stack Navigator
npm install @react-navigation/native-stack --save
推荐:使用单个命令在Windows 11/10安装Google Earth Pro
CocoaPods 安装
请使用以下命令安装 CocoaPods
npx pod-install
项目文件结构
要开始编码,您需要在项目中创建一个名为 pages 的目录,并在其中创建一个文件 HomeActivity.js。
代码
现在在任何代码编辑器中打开 App.js 并将代码替换为以下代码
App.js
// 3 Ways to Hide Navigation Bar in React Native Application
// https://aboutreact.com/react-native-hide-navigation-bar-and-make-screen-full-screen/
import React from 'react';
import {NavigationContainer} from '@react-navigation/native';
import {createNativeStackNavigator} from '@react-navigation/native-stack';
import HomeActivity from './pages/HomeActivity';
const Stack = createNativeStackNavigator();
const App = () => {
return (
);
};
export default App;
在任何代码编辑器中打开 pages/HomeActivity.js 并用以下代码替换代码。
HomeActivity.js
// 3 Ways to Hide Navigation Bar in React Native Application
// https://aboutreact.com/react-native-hide-navigation-bar-and-make-screen-full-screen/
import React from 'react';
import {SafeAreaView, StyleSheet, Text, View} from 'react-native';
const HomeActivity = ({navigation, route}) => {
React.useLayoutEffect(() => {
navigation.setOptions({headerShown: false});
}, (navigation));
return (
3 Ways to Hide Navigation Bar
{'\n'}
in React Native Application
www.aboutreact.com
);
};
export default HomeActivity;
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
padding: 16,
},
header: {
fontSize: 25,
textAlign: 'center',
marginVertical: 16,
}
});
运行 React Native 应用程序
再次打开终端并使用进入您的项目。
cd ProjectName
1. 启动 Metro Bundler
首先,您需要启动 Metro,它是 React Native 附带的 JavaScript 打包器。要启动 Metro 打包器,请运行以下命令:
npx react-native start
一旦启动 Metro Bundler,它将永远在您的终端上运行,直到您关闭它。让 Metro Bundler 在其自己的终端中运行。打开一个新终端并运行该应用程序。
2.启动React Native应用程序
要在 Android 虚拟设备或真实调试设备上运行项目:
npx react-native run-android
或者在 iOS 模拟器上运行(仅限 macOS)
npx react-native run-ios
输出截图
在线模拟器中的输出
这就是隐藏导航栏并使屏幕全屏的方法。如果您有任何疑问或想分享有关该主题的内容,您可以在下面发表评论或在此处联系我们。很快会有更多帖子发布。