React Native,更改 React Navigation header 样式
React Native, change React Navigation header styling
我正在我的 React Native 应用程序中实现 React Navigation,我想更改 header 的背景和前景色。我有以下内容:
/**
* Sample React Native App
* https://github.com/facebook/react-native
* @flow
*/
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
import { StackNavigator } from 'react-navigation';
export default class ReactNativePlayground extends Component {
static navigationOptions = {
title: 'Welcome',
};
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>
Welcome to React Native!
</Text>
<Text style={styles.instructions}>
To get started, edit index.android.js
</Text>
<Text style={styles.instructions}>
Double tap R on your keyboard to reload,{'\n'}
Shake or press menu button for dev menu
</Text>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
},
});
const SimpleApp = StackNavigator({
Home: { screen: ReactNativePlayground }
});
AppRegistry.registerComponent('ReactNativePlayground', () => SimpleApp);
默认情况下,标题的背景颜色为白色,前景为黑色。我还查看了 React Navigation 的文档,但我无法找到它显示如何设置样式的位置。有帮助吗?
在较新版本的 React Navigation 中,您有一个更扁平的设置对象,如下所示:
static navigationOptions = {
title: 'Chat',
headerStyle: { backgroundColor: 'red' },
headerTitleStyle: { color: 'green' },
}
已弃用的答案:
根据文档,here,您修改了导航选项对象。尝试类似的东西:
static navigationOptions = {
title: 'Welcome',
header: {
style: {{ backgroundColor: 'red' }},
titleStyle: {{ color: 'green' }},
}
}
不过请不要真的最终使用这些颜色!
根据文档,您可以像这样使用 "navigationOptions" 样式。
static navigationOptions = {
title: 'Chat',
headerStyle:{ backgroundColor: '#FFF'},
headerTitleStyle:{ color: 'green'},
}
有关导航选项的更多信息,您还可以阅读文档:-
https://reactnavigation.org/docs/navigators/stack#Screen-Navigation-Options
试试这个代码:
static navigationOptions = {
headerTitle: 'SignIn',
headerTintColor: '#F44336'
};
祝你好运!
注意! navigationOptions
是 Stack Navigation
和 Drawer Navigation
之间的差异
堆栈导航已解决。
但是对于抽屉导航,您可以添加自己的 Header 并使用 contentComponent
配置您的样式:
首先import { DrawerItems, DrawerNavigation } from 'react-navigation'
然后
Header 之前 DrawerItems
:
contentComponent: props => <ScrollView><Text>Your Own Header Area Before</Text><DrawerItems {...props} /></ScrollView>
.
DrawerItems
之后的页脚:
contentComponent: props => <ScrollView><DrawerItems {...props} /><Text>Your Own Footer Area After</Text></ScrollView>
.
试试这个工作代码
static navigationOptions = {
title: 'Home',
headerTintColor: '#ffffff',
headerStyle: {
backgroundColor: '#2F95D6',
borderBottomColor: '#ffffff',
borderBottomWidth: 3,
},
headerTitleStyle: {
fontSize: 18,
},
};
我正在我的 React Native 应用程序中实现 React Navigation,我想更改 header 的背景和前景色。我有以下内容:
/**
* Sample React Native App
* https://github.com/facebook/react-native
* @flow
*/
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
import { StackNavigator } from 'react-navigation';
export default class ReactNativePlayground extends Component {
static navigationOptions = {
title: 'Welcome',
};
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>
Welcome to React Native!
</Text>
<Text style={styles.instructions}>
To get started, edit index.android.js
</Text>
<Text style={styles.instructions}>
Double tap R on your keyboard to reload,{'\n'}
Shake or press menu button for dev menu
</Text>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
},
});
const SimpleApp = StackNavigator({
Home: { screen: ReactNativePlayground }
});
AppRegistry.registerComponent('ReactNativePlayground', () => SimpleApp);
默认情况下,标题的背景颜色为白色,前景为黑色。我还查看了 React Navigation 的文档,但我无法找到它显示如何设置样式的位置。有帮助吗?
在较新版本的 React Navigation 中,您有一个更扁平的设置对象,如下所示:
static navigationOptions = {
title: 'Chat',
headerStyle: { backgroundColor: 'red' },
headerTitleStyle: { color: 'green' },
}
已弃用的答案:
根据文档,here,您修改了导航选项对象。尝试类似的东西:
static navigationOptions = {
title: 'Welcome',
header: {
style: {{ backgroundColor: 'red' }},
titleStyle: {{ color: 'green' }},
}
}
不过请不要真的最终使用这些颜色!
根据文档,您可以像这样使用 "navigationOptions" 样式。
static navigationOptions = {
title: 'Chat',
headerStyle:{ backgroundColor: '#FFF'},
headerTitleStyle:{ color: 'green'},
}
有关导航选项的更多信息,您还可以阅读文档:-
https://reactnavigation.org/docs/navigators/stack#Screen-Navigation-Options
试试这个代码:
static navigationOptions = {
headerTitle: 'SignIn',
headerTintColor: '#F44336'
};
祝你好运!
注意! navigationOptions
是 Stack Navigation
和 Drawer Navigation
之间的差异
堆栈导航已解决。
但是对于抽屉导航,您可以添加自己的 Header 并使用 contentComponent
配置您的样式:
首先import { DrawerItems, DrawerNavigation } from 'react-navigation'
然后
Header 之前 DrawerItems
:
contentComponent: props => <ScrollView><Text>Your Own Header Area Before</Text><DrawerItems {...props} /></ScrollView>
.
DrawerItems
之后的页脚:
contentComponent: props => <ScrollView><DrawerItems {...props} /><Text>Your Own Footer Area After</Text></ScrollView>
.
试试这个工作代码
static navigationOptions = {
title: 'Home',
headerTintColor: '#ffffff',
headerStyle: {
backgroundColor: '#2F95D6',
borderBottomColor: '#ffffff',
borderBottomWidth: 3,
},
headerTitleStyle: {
fontSize: 18,
},
};