I have a single screen with a side drawer and I got it working across the app by adding layout to the options of the center screen and not the root:
Navigation.setRoot({
root: {
sideMenu: {
id: 'sideMenu',
left: {
component: {
id: 'SideDrawer',
name: 'yourApp.SideDrawer',
},
visible:true,
},
center: {
stack: {
id: 'App',
children: [{
component: {
id: 'HomeScreen',
name: 'yourApp.HomeScreen',
options:{
topBar: {
leftButtons: [
{
text:'Menu',
id: 'sideDrawerToggle',
active: true,
visible: true,
display: true,
}
],
background: {
color: '#000',
},
title: {
text: 'Your App',
fontSize: 18,
color: '#fff',
fontFamily: 'Helvetica',
fontWeight: 'bold', // Available on iOS only, will ignore fontFamily style and use the iOS system fonts instead. Supported weights are: 'regular', 'bold', 'thin', 'ultraLight', 'light', 'medium', 'semibold', 'heavy' and 'black'.
},
},
}
},
}],
options:{
topBar: {
background: {
color: '#000',
},
title: {
fontSize: 18,
color: '#fff',
fontFamily: 'Helvetica',
fontWeight: 'bold', // Available on iOS only, will ignore fontFamily style and use the iOS system fonts instead. Supported weights are: 'regular', 'bold', 'thin', 'ultraLight', 'light', 'medium', 'semibold', 'heavy' and 'black'.
},
backButton: {
visible: true,
color:'#fff'
},
},
//add layout here
layout: {
orientation: ['portrait'],
},
}
}
}
}
}});