You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native 导航显示两个header问题:自定义header与Tab默认Header同时出现

问题根因

你当前使用的是栈导航嵌套底部标签导航的结构,外层栈导航已经配置了自定义头部,但底部标签导航默认会开启自带头部渲染,因此出现了两个头部重叠展示的问题。

解决方案

在底部标签导航的全局配置中关闭自带头部的渲染即可,修改Tab.Navigator的screenOptions配置,新增headerShown: false属性:

const TabBar = () => (
  <Tab.Navigator
    tabBar={(props) => {
      return (
        <View>
          <BottomTabBar {...props} />
        </View>
      );
    }}
    screenOptions={{
      // 新增这一行关闭Tab导航自带的头部
      headerShown: false,
      tabBarStyle: [{ display: 'flex' }],
      tabBarShowLabel: true,
      tabBarLabelStyle: {
        paddingBottom: 6,
        color: '#333',
      },
    }}>
    {/* 原有Tab.Screen内容保持不变 */}
    <Tab.Screen name="Home" component={Home} {/* 原有配置 */} />
    <Tab.Screen name="News" component={News} {/* 原有配置 */} />
  </Tab.Navigator>
);

补充说明

如果后续需要给个别Tab页面单独配置头部,不需要改全局配置,直接给对应Tab.Screen的options单独设置headerShown: true以及对应的头部属性即可。


内容的提问来源于stack exchange,提问作者locklock123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 23:24:06