React Navigation switching background colors and styling StackNavigator React Navigation switching background colors and styling StackNavigator reactjs reactjs

React Navigation switching background colors and styling StackNavigator


To style the header in React Navigation use a header object inside the navigationOptions object:

static navigationOptions = {    header: {    titleStyle: {     /* this only styles the title/text (font, color etc.)  */    },    style: {     /* this will style the header, but does NOT change the text */    },    tintColor: {      /* this will color your back and forward arrows or left and right icons */    }  }}

For styling the backgroundColor, you just need to set the backgroundColor in your app otherwise you'll get the default color.

UPDATE!! As of May 2017 beta9 the navigationOptions are now flat

You can read about the breaking change here

You need to remove the object keys from the header object. Also, notice they have been renamed.

static navigationOptions = {   title: 'some string title',   headerTitleStyle: {      /*  */   },   headerStyle: {      /*  */   },   headerTintColor: {      /*  */   },}


Here is an example of what I am using to change the card background color and Header background and font color.

/*1. Change React Navigation background color.- change the style backgroundColor property in the StackNavigator component- also add a cardStyle object to the Visual options config specifying a background color*///your new background colorlet myNewBackgroundColor = 'teal';const AppNavigator = StackNavigator({  SomeLoginScreen: {    screen: SomeLoginScreen  }}, {      headerMode: 'screen',       cardStyle: {backgroundColor: myNewBackgroundColor   }});//add the new color to the style propertyclass App extends React.Component {  render() {    return (         <AppNavigator style = {{backgroundColor: myNewBackgroundColor}} ref={nav => {this.navigator = nav;}}/>    );  }}/*2. Change React Navigation Header background color and text color.- change the StackNavigator navigationOptions *//*its not clear in the docs but the tintColor changes the color of the text title in the header while a new style object changes the background color.*///your new text colorlet myNewTextColor = 'forestgreen';//your new header background colorlet myNewHeaderBackgroundColor = 'pink';const AppNavigator = StackNavigator({  SomeLoginScreen: {    screen: SomeLoginScreen,    navigationOptions: {      title: 'Register',      header: {        tintColor: myNewTextColor,        style: {          backgroundColor: myNewHeaderBackgroundColor        }      },    }  }}, {     headerMode: 'screen',     cardStyle:{backgroundColor:'red'   }});


Use below code to create custom navigation header

static navigationOptions = {          title: 'Home',          headerTintColor: '#ffffff',          headerStyle: {            backgroundColor: '#2F95D6',            borderBottomColor: '#ffffff',            borderBottomWidth: 3,          },          headerTitleStyle: {            fontSize: 18,          },      };