问题
I want the color to be the default gray color when the tab is not selected but to be my tabBarColor
color when the tab is selected. I could not find a way to change the color of the title in the tab bar.
How can I do that?
This is my code:
Home:{
screen: TabNavigator({
Home: {
screen: HomeScreen,
navigationOptions: ({ navigation }) => ({
title: 'Home',
tabBarIcon: ({ tintColor, focused }) => (
<Ionicons
name={focused ? 'ios-home' : 'ios-home-outline'}
size={26}
style={{ color: focused ? `${tabBarColor}` : tintColor}}
/>
),
//headerStyle: {backgroundColor: "#553A91"},
//headerTitleStyle: {color: "#FFFFFF"},
header: null,
}),
},
Profile: {
screen: ProfileScreen,
navigationOptions: ({ navigation }) => ({
title: 'Profile',
tabBarIcon: ({ tintColor, focused }) => (
<Ionicons
name={focused ? 'ios-people' : 'ios-people-outline'}
size={26}
style={{ color: focused ? `${tabBarColor}` : tintColor }}
/>
),
//headerStyle: {backgroundColor: "#553A91"},
//headerTitleStyle: {color: "#FFFFFF"},
header: null,
}),
},
}),
}
回答1:
In TabNavigator Docs, it is clearly indicated that you need to use activeTintColor
activeTintColor
: label and icon color of the active tab
Example:
const MyApp = TabNavigator({
Home: {
screen: MyHomeScreen,
},
Notifications: {
screen: MyNotificationsScreen,
},
}, {
navigationOptions: ({navigation}) => ({
tabBarIcon: ({focused}) => {
...
}
}),
tabBarOptions: {
activeTintColor: '#ffffff',
},
});
回答2:
- Define variable route,
- Add props listeners to each <Tab.Screen>,
- Use variable route for change color of tabBarLabel.
Example :
const [route, setRoute] = useState('home');
<Tab.Navigator>
<Tab.Screen listeners={{
tabPress: (e) => {
setRoute('home');
},
}}
options={{
tabBarLabel: (
<Text
style={{
color: route === 'home' ? 'ACTIVE_COLOR' : 'INACTIVE_COLOR',
}}>
home
</Text>
) />
<Tab.Screen listeners={{
tabPress: (e) => {
setRoute('profile');
},
}}
options={{
tabBarLabel: (
<Text
style={{
color: route === 'profile' ? 'ACTIVE_COLOR' : 'INACTIVE_COLOR',
}}>
profile
</Text>
) />
</Tab.Navigator>
I hope I was able to help you
来源:https://stackoverflow.com/questions/45513268/how-to-change-the-color-of-the-active-selected-tab