【问题标题】:How to set headerMode on some routes but not others. (React Navigation)如何在某些路由而不是其他路由上设置 headerMode。 (反应导航)
【发布时间】:2017-05-02 04:06:42
【问题描述】:

使用React Navigation 是否可以使用 headerMode 定义某些路由而没有其他路由?

我的大部分页面不使用页眉,我找到了如何在全局范围内关闭它。

export const App = StackNavigator({
  PhotoView: {
    screen: Photos
  },
  ListView: {
    screen: List
  }
}, {
  headerMode: 'none'
});

但如果我想在ListView 上显示标题,我该怎么做呢?

我尝试了文档中的几种方法,但没有运气。

【问题讨论】:

    标签: react-native react-navigation


    【解决方案1】:

    您可以将应用导航器包装在根导航器中,将navigationOptions.header 设置为null 以隐藏所有包装的导航器标题,然后在要显示标题的屏幕上设置navigationOptions.headerTitle

    此答案基于 react-navigation 版本 v1.0.0-beta.9

    const App = StackNavigator({
      PhotoView: {
        screen: Photos,
      },
      ListView: {
        screen: List,
        navigationOptions: {
          headerTitle: 'ListView',
        },
      }
    });
    
    export const Root = StackNavigator({
      Root: { 
        screen: App,
        navigationOptions: {
          header: null,
        },
      },
    });
    

    【讨论】:

    • 感谢您的回答。它确实有效,但标题所在的位置有一个空间。想象一下你的手机处于拍照模式,但图片被向下推了大约 40 像素。
    • 您可以将PhotoView navigationOptions.headerTitle 设置为null 以删除空格
    • @alpha 提供的解决方案和评论很接近。将 PhotoView 的 headerTitle 设置为 null 将隐藏标题,但不会隐藏栏的高度......您需要做的是将 PhotoViewnavigationOptions.headerStyle 设置为 { display: 'none' } - 这可以实现所需无标题查找PhotoView,并允许标题显示ListView
    【解决方案2】:

    您可以在 screen 属性的组件中隐藏导航器标题:

    static navigationOptions = {
        header: null
    };
    

    【讨论】:

    猜你喜欢
    • 2021-02-26
    • 2021-03-29
    • 2023-03-16
    • 2021-03-17
    • 2016-04-10
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    相关资源
    最近更新 更多