【问题标题】:How to hide tab bar for a specific scene in React Native (react-native-router-flux)?如何在 React Native(react-native-router-flux)中隐藏特定场景的标签栏?
【发布时间】:2026-02-19 21:45:01
【问题描述】:

我正在尝试为我的应用程序上的特定页面隐藏整个标签栏。 我也试图将它隐藏在路由上和容器内。 但是,它没有用。我可以在这两种情况下隐藏标题导航栏,但它不起作用 用于标签栏。 以下是我的尝试代码:

     <Scene
        key="showBarcodeScanner"
        hideNavBar
        hideTabBar
        {...DefaultProps.navbarProps}
        iosStatusbar="light-content"
        component={BarcodeScan}
      />

下面的方法也不行

  static navigationOptions = ({ navigation }) => ({
    header: null,
    tabBarVisible: false
  });

我已经检查了来源,并且有一个隐藏选项卡的逻辑(虽然没有深入)。

if (navigationParams.hideTabBar != null) {
  if (navigationParams.hideTabBar) {
    res.tabBarVisible = false;
  }
} else if (hideTabBar) {
  res.tabBarVisible = false;
}

我错过了什么吗?有没有其他方法可以隐藏特定页面的标签栏?

【问题讨论】:

    标签: react-native expo react-native-router-flux


    【解决方案1】:

    参见 React Native Router 的 Readme

    Actions.refresh({key: 'showBarcodeScanner', hideNavBar: true, hideTabBar: true});
    

    希望对你有帮助,你可以放任何你想刷新的参数。

    【讨论】:

      【解决方案2】:

      经过一番研究,我找到了解决方案。

      我想隐藏的场景在我路线中选项卡下的堆栈内。 根据官方来源,如果不改组以下代码中的导航器,则无法正常工作: React Navigation

      tabBarVisible: false
      

      我刚刚在我的选项卡上方创建了一个新堆栈,问题就解决了。

      【讨论】: