@amazon-devices/react-native-vector-icons库在Vega上提供对react-native-vector-icons的支持。该库提供可自定义的矢量图标,非常适合装饰按钮、标志和导航栏或选项卡栏,可以无缝集成到您的项目中。它们的多功能性使扩展和样式设定都很轻松。
此库由系统部署,可供适用于Vega的React Native应用使用,无需单独的安装过程。此库作为自动链接库进行部署,您的应用在运行时会链接到该库。该库保证仅与为之构建的适用于Vega的React Native版本兼容。
升级应用的适用于Vega的React Native版本时,可以考虑升级其库依赖关系的最佳实践。
有关此库及其API的更多信息,请参阅GitHub存储库中的README.md(仅提供英文版)。
安装
-
在package.json文件中添加JavaScript库依赖项。
-
使用
npm install命令重新安装依赖项。 -
将您的字体文件添加到
<app_package_root>/assets/fonts
升级
升级此包时,升级链接到项目的字体文件。如果自动链接对您有用,再次运行它应该会更新字体。否则,按照安装部分中概述的步骤进行操作。示例
IconExplorer
在GitHub react-native-vector-icons存储库的packages/icon-explorer中试用IconExplorer项目。您还可以在那里搜索任何图标。
基本示例
返回图标的基本示例:TabBar
下面的示例显示了如何实现TabBar。 取自react-navigation的示例:
API参考
Icon组件
可以使用库自带的图标之一(例如,下面的示例使用FontAwesome.js中的图标),也可以创建自己的自定义字体。属性
使用任何Text属性以及以下属性:方法
以下是静态方法。 | 方法 | 描述 | |——|———– | |getFontFamily | 返回当前用于以文本形式检索图标的字体系列。用法:const fontFamily = Icon.getFontFamily() | |getImageSource| Returns a promise that resolves to the source of a bitmap version of the icon for use withImagecomponent. Usage:const source = await Icon.getImageSource(name, size, color)| |getImageSourceSync| Same asgetImageSourcebut synchronous. Usage:const source = Icon.getImageSourceSync(name, size, color)| |getRawGlyphMap| Returns the raw glyph map of the icon set. Usage:const glyphMap = Icon.getRawGlyphMap()| |hasIcon| Checks if the name is valid in current icon set. Usage:const isNameValid = Icon.hasIcon(name)` |
样式
Icon建立在Text组件之上,因此大多数样式属性都正常有效。
试试以下属性:
backgroundColorborderWidthborderColorborderRadiuspaddingmargincolorfontSize
Icon.Button组件
一个方便的组件,用于创建左侧带有图标的按钮。属性
可以使用除以下属性之外的任何Text、TouchableHighlight或TouchableWithoutFeedback属性:
用作PNG图像/源对象
用于依赖位图图像而不是可缩放矢量图标的其他组件。采用上述参数name、size和color。
Icon.getImageSourceSync来避免出现故障。请记住,此方法会产生阻塞并可能导致性能损失。后续调用使用缓存。
多样式字体
react-native-vector-icons库支持FontaWesome 5等多样式字体。其用法与标准Icon组件类似:
方法
这些方法是静态的,多样式字体支持来自Icon的方法。
如果没有传递任何样式参数(或者它无效),则这些方法将默认设置为预定义的回退。
组件
支持Icon.Button。它的用法类似于Icon:
自定义字体
createIconSet(glyphMap, fontFamily[, fontFile])
根据glyphMap返回您自己的自定义字体。键是图标名称,值是UTF-8字符,或其字符代码。该字体的名称是fontFamily,但这不是文件名的名称。在Font Book应用或类似应用中打开字体以了解名称。createIconSetFromFontello(config[, fontFamily[, fontFile]])
您可以根据fontello配置文件创建自定义字体。别忘了如上所述导入字体,然后将config.json放到项目中便利的位置。createIconSetFromIcoMoon(config[, fontFamily[, fontFile]])
.zip中包含的.json文件。按照前面的说明将.ttf字体文件导入到您的项目中。
createMultiStyleIconSet(styles [, options])
动画
React Native自带了一个名为Animated的动画库。要将其与图标一起使用,使用以下代码创建动画组件即可:const AnimatedIcon = Animated.createAnimatedComponent(Icon)。

