javascript - 当标签处于活动状态或不在 React Native 中时更改标签栏图标
问题描述
我在本机反应中有一个底部选项卡导航,如果选项卡处于活动状态,我希望它显示不同的图标,如果选项卡不活动,则显示另一个图标。我如何实现它?我在下面有我的代码
...
import { createBottomTabNavigator } from "react-navigation-tabs";
import { MaterialCommunityIcons } from "@expo/vector-icons";
import HomeScreen from "../screens/HomeScreen";
...
export default createBottomTabNavigator({
HomePage: {
screen: HomeScreen,
navigationOptions: {
tabBarLabel: "Home",
tabBarIcon: ({ tintColor }) => (
<MaterialCommunityIcons
name='home'
color={tintColor}
size={28}
/>
)
}
},
....
{
tabBarOptions: {
showLabel: false,
activeTintColor: 'red',
inactiveTintColor: "grey"
}
}
})
解决方案
经过一些研究,这就是我如何做到的。首先将一个“聚焦”道具传递给 tabBarIcon,如下所示。然后进行检查以确定要呈现哪个图标
export default createBottomTabNavigator({
HomePage: {
screen: HomeScreen,
navigationOptions: {
tabBarLabel: "Home",
tabBarIcon: ({ tintColor, focused }) => (
<MaterialCommunityIcons
name={focused ? "home" : "home-outline"}
color={tintColor}
size={28}
/>
)
}
},
....
{
tabBarOptions: {
showLabel: false,
activeTintColor: 'red',
inactiveTintColor: "grey"
}
}
})
根据上面的代码,无论选项卡是否处于活动状态,不同的图标都会以淡色呈现
推荐阅读
- docker - 如何修复 Docker sh 入口点中的“权限被拒绝”
- html - 图标不显示在按钮离子上
- java - 如何以编程方式从android应用程序的文件和文件夹中删除世界读/写权限?
- ios - iOS Firestore 可以将 `FieldValue.increment` 用于 Map 值吗?
- javascript - Google Places API 上的 CORS 错误,但 Reddit 上没有
- python - Pyperclip 模块在 Android 上失败
- java - 如何知道背包问题(DP实现)中选择了哪个项目?
- vue.js - Parcel vue 调试:如何将 parcel serve 的输出映射到我的源代码?
- java - Spring Batch:如何配置 FlatItemFileReader 来读取压缩的 ND-JSON 文件?
- visual-studio - 在 Visual Studio 2013 中找不到这些选项