2017-05-02 89 views
2

With React Navigation是否可以使用headerMode定义某些路由,而没有?如何在某些路由上设置headerMode,但不是其他路由。 (React Navigation)

我的大部分网页都没有使用标题,我发现如何在全球范围内关闭它。

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

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

我已经尝试了几种从文档中获得的方法,但没有运气。

回答

2

你可以用你的应用程序导航在根导航,设置navigationOptions.headernull隐藏全部包裹航海家头,然后在要显示表头屏幕上设置navigationOptions.headerTitle

这个答案是从反应导航版本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, 
    }, 
    }, 
}); 
+0

谢谢回答。它确实有用,但有一个空间,标题会一直存在。想象一下你的手机处于相机模式,但图片被压低了大约40px。 – Colton45

+0

您可以将'PhotoView'' navigationOptions.headerTitle'设置为'null'来移除空间 – alpha

+2

解决方案和评论@alpha提供的是非常接近的。将'PhotoView'的headerTitle设置为null会隐藏标题,但不会隐藏标题的高度... 你需要做的是将'PhotoView'的'navigationOptions.headerStyle'设置为{display:'none'} - 这实现了'PhotoView'所需的无标题外观,并允许为“ListView”显示标题 –

相关问题