如何在反应导航中设置标题样式

时间:2020-02-08 09:44:45

标签: react-native react-navigation

我正在尝试在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',
            },
        }
    },
);

4 个答案:

答案 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" },
    };
...
}