我正在尝试在react-navigation
中设置标题的样式,该对象由Expo自动生成。
我正在尝试设置标题背景和标题的方向。
我尝试了所有可能的地方,包括navigationOptions
,但都失败了。
在下面的代码标签栏中,背景颜色已正确更改。但是标题的相同方法失败。
任何指导表示赞赏。
import React from 'react';
import { createStackNavigator, createBottomTabNavigator } from 'react-navigation';
import LinksScreen from '../screens/LinksScreen';
import SettingsScreen from '../screens/SettingsScreen';
const LinksStack = createStackNavigator({
Links: LinksScreen,
});
LinksStack.navigationOptions = {
tabBarLabel: "Links",
tabBarIcon: ...
};
const SettingsStack = createStackNavigator({
Settings: SettingsScreen,
});
SettingsStack.navigationOptions = {
tabBarLabel: "Settings",
tabBarIcon: ...,
};
export default createBottomTabNavigator(
{
LinksStack,
SettingsStack,
},
{
tabBarOptions: {
style: {
backgroundColor: '#123456',
},
}
},
);
答案 0 :(得分:2)
尝试:
static navigationOptions = {
title: 'Chat',
headerStyle: { backgroundColor: 'red' },
headerTitleStyle: { color: 'green' },
}
答案 1 :(得分:1)
您可以尝试
export default createBottomTabNavigator(
{
LinksStack: {
screen: LinksStack,
navigationOptions: LinksStack.navigationOptions(), // style here
},
SettingsStack,
}
答案 2 :(得分:0)
您可以通过在每个屏幕内部使用headerStyle来进行尝试
export default createBottomTabNavigator({
LinkStack: {
screen: LinkScreen,
navigationOptions: { // you need to call LinkStack.navigationOptions here
headerTitle: 'LinkScreen',
headerStyle: {
backgroundColor: 'red',
...otherStyles,
},
},
}
})
或者,如果您的不同屏幕没有特定的标题样式,则可以在stackNavigator中使用defaultNavigationOptions
。
在您的情况下,您需要致电LinkStack.navigationOptions
来获得NavigationOptions。
答案 3 :(得分:0)
最后,我弄清楚了我做错了什么。
似乎我在错误的位置搜索答案。以下更改解决了该问题:
class LinksScreen extends React.Component {
static navigationOptions = {
title: "Links Title",
headerStyle: { backgroundColor: '#123456', },
headerTitleStyle: { color: "#654321" },
};
...
}