如何在Expo Router中移除底部导航栏中不需要的页面?
移除Expo Router底部导航栏中的指定页面
Expo Router默认会把app/(tabs)目录下的所有页面自动加入底部导航栏,要移除部分页面,分两种情况处理:
一、默认自动生成导航的情况
如果没手动配置Tabs布局,直接调整文件目录结构即可:
- 把不需要在底部导航显示的页面,从
app/(tabs)目录移到该目录外,比如直接放在app/根目录,或者新建一个非tabs分组目录(比如app/(other))存放这些页面。
举个目录结构示例:
// 调整前 app/ (tabs)/ home.jsx profile.jsx settings.jsx // 调整后(settings不再出现在底部导航) app/ (tabs)/ home.jsx profile.jsx settings.jsx
二、手动配置Tabs布局的情况
如果在app/(tabs)/_layout.jsx里自定义了Tabs组件,直接修改配置代码,删掉不需要的页面项:
// 修改前的_layout.jsx import { Tabs } from 'expo-router'; export default function TabLayout() { return ( <Tabs> <Tabs.Screen name="home" /> <Tabs.Screen name="profile" /> <Tabs.Screen name="settings" /> {/* 要移除的页面 */} </Tabs> ); }
// 修改后的_layout.jsx import { Tabs } from 'expo-router'; export default function TabLayout() { return ( <Tabs> <Tabs.Screen name="home" /> <Tabs.Screen name="profile" /> </Tabs> ); }
内容的提问来源于stack exchange,提问作者Yunus Emre Acar
相关产品推荐
相关产品推荐

