1) 安装 native-base 后从终端运行此命令。
node node_modules/native-base/ejectTheme.js
当您运行上述命令时,名为 native-base-theme 的文件夹将被复制到您的项目根目录。目录内有两个文件夹,分别命名为 components 和 variables
2) 用 StyleProvider 包装你想要应用主题的代码或组件
例如主屏幕
import React, { Component } from 'react';
import { Container, Content, Text, StyleProvider } from 'native-base';
import getTheme from './native-base-theme/components';
import material from './native-base-theme/variables/material';
import CustomFooter from '../components/CustomFooter';
export default class HomeScreen extends Component {
constructor(props) {
super(props);
}
render() {
return (
<StyleProvider style={getTheme(material)}>
<Container>
<Content>
<Text>
I have changed the text color.
</Text>
</Content>
<CustomFooter screen="Home" navigation={this.props.navigation} />
</Container>
</StyleProvider>
);
}
}
CustomFooter.js
import React, {Component} from 'react';
import {FooterTab, Footer, Button, Icon} from 'native-base';
export default class CustomFooter extends Component {
constructor(props) {
super(props);
}
render() {
const navigation = this.props.navigation;
const activeMenu = this.props.screen;
return (
<Footer>
<FooterTab>
<Button
active={activeMenu == 'Home' ? true : false}
onPress={() => navigation.navigate('Home')}>
<Icon active={activeMenu == 'Home' ? true : false} name="home" />
</Button>
<Button
active={activeMenu == 'Cart' ? true : false}
onPress={() => navigation.navigate('Cart')}>
<Icon active={activeMenu == 'Cart' ? true : false} name="card" />
</Button>
<Button
active={activeMenu == 'Map' ? true : false}
onPress={() => navigation.navigate('Map')}>
<Icon active={activeMenu == 'Map' ? true : false} name="map" />
</Button>
<Button
active={activeMenu == 'Profile' ? true : false}
onPress={() => navigation.navigate('Profile')}>
<Icon
active={activeMenu == 'Profile' ? true : false}
name="person"
/>
</Button>
<Button
active={activeMenu == 'Settings' ? true : false}
onPress={() => navigation.navigate('Settings')}>
<Icon
active={activeMenu == 'Settings' ? true : false}
name="settings"
/>
</Button>
</FooterTab>
</Footer>
);
}
}
3) 现在从 native-base-theme 文件夹更改颜色
转到 /native-base-theme/variables/material.js
找到tabActiveBgColor并更改值
// FooterTab
tabBarTextColor: '#bfc6ea',
tabBarTextSize: 11,
activeTab: '#fff',
sTabBarActiveTextColor: '#007aff',
tabBarActiveTextColor: '#fff',
tabActiveBgColor: 'purple', // for example changed to purple color
然后重新加载应用程序(小心热重新加载有时不会影响)摇动手机并点击重新加载按钮。
仅此而已。
有关更多详细信息 => https://docs.nativebase.io/Customize.html#theaming-nb-headref