【问题标题】:React Native Vector Icons won't show in Bottom Tab Navigation in AndroidReact Native Vector Icons 不会显示在 Android 的底部选项卡导航中
【发布时间】:2024-01-01 16:14:01
【问题描述】:

图标显示在屏幕/页面中,但不会显示在底部导航中。我尝试过的解决方案:

  • 按照 github 的安装指南,我尝试了 GRADLEMANUAL 选项,但结果相同
  • 尝试./gradlew clean 然后npx react-native run-android,但结果相同
  • 尝试npx react-native link react-native-vector-icons 然后npx react-native run-android,但结果相同

屏幕截图底部导航栏

截图设置画面

如上图所示,它确实出现在屏幕/页面中,但不会显示在底部导航中。

注意:我已经在模拟器和真正的 android 设备上进行了测试,但仍然得到相同的结果!

底部标签的代码

import React from 'react'
import { StyleSheet, Text, View } from 'react-native'
import Ionicons from 'react-native-vector-icons/Ionicons'
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs'
import ProductNavigation from './ProductNavigation'
import SettingScreen from '../screen/SettingScreen'



const BottomTab = createBottomTabNavigator();

const BottomTabNav = () => {
return (
    <BottomTab.Navigator>
        <BottomTab.Screen 
        name="Home" 
        component={ProductNavigation} 
        options={{
            tabBarLabel: "Home",
            tabBarIcon:({color, size}) => {
                <Ionicons name="home-outline" color={color} size={size} />
            }}} />

        <BottomTab.Screen 
        name="Settings" 
        component={SettingScreen}
        options={{
            tabBarLabel: "Settings",
            tabBarIcon: ({color, size}) => {
                <Ionicons name="settings-outline" color={color} size={size} 
    />
            
        }}} />
    </BottomTab.Navigator>
   )
  }

 export default BottomTabNav

 const styles = StyleSheet.create({})

您还可以帮助为什么底部标签转到下一页?我应该在哪里编辑代码,提前谢谢。下面是截图:

【问题讨论】:

  • 你能告诉我们你的标签导航器的代码,你在哪里使用了图标吗?
  • 您使用哪个库进行底部导航?
  • 我添加了代码,请您的帮助@GuruparanGiritharan提前感谢我的朋友:)
  • @MuhammadHaekal 这是您使用箭头功能的方式的问题,请查看我的答案

标签: react-native react-native-android react-navigation-v5 react-navigation-bottom-tab react-native-vector-icons


【解决方案1】:

问题其实很简单,你并没有从函数中返回任何东西,

    tabBarIcon: ({color, size}) => {
//nothing returned here
                    <Ionicons name="settings-outline" color={color} size={size} 
        />

你必须这样做,要么使用如下方括号,要么在代码中使用 return 语句。

tabBarIcon: ({color, size}) => (
                <Ionicons name="settings-outline" color={color} size={size} 
    />)

【讨论】:

  • 哇,是的,它成功了!!,这一直是因为这个简单的问题(我觉得很愚蠢):(非常感谢你的朋友:)
【解决方案2】:

首先,请确保您正确使用图标。

例如,假设我们使用MaterialCommunityIcons

import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
const Tab = createBottomTabNavigator();
function MyTabs() {
  return (
    <Tab.Navigator
      initialRouteName="Home"
      tabBarOptions={{
        activeTintColor: '#e91e63',
      }}
    >
      <Tab.Screen
        name="Home"
        component={Home}
        options={{
          tabBarLabel: 'Home',
          tabBarIcon: ({ color, size }) => (
            <MaterialCommunityIcons name="home" color={color} size={size} />
          ),
        }}
      />
      <Tab.Screen
        name="Settings"
        component={Settings}
        options={{
          tabBarLabel: 'Updates',
          tabBarIcon: ({ color, size }) => (
            <MaterialCommunityIcons name="settings" color={color} size={size} />
          ),
          tabBarBadge: 3,
        }}
      />
    Tab.Navigator>
  );
}

一般用法是这样的。检查文档以获取详细信息。 https://reactnavigation.org/docs/bottom-tab-navigator/

【讨论】:

    【解决方案3】:

    就我而言,我没有添加

    申请自:“../../node_modules/react-native-vector-icons/fonts.gradle”

    到 [Oblador React Native Vector Icons README 文档][1] 中所示的 android/app/build.gradle [1]:https://github.com/oblador/react-native-vector-icons#android

    添加后,我的图标就会显示出来。

    【讨论】:

      【解决方案4】:

      您需要创建一个自定义标签栏组件,并在其中添加图标。 React Navigation 有一个很好的文档 - https://reactnavigation.org/docs/bottom-tab-navigator#tabbar

      【讨论】: