React-native Android react-native-vector-icons的配置使用

App中会经常用到小图标,而且还要切换他们的颜色,为了避免使用图片导致的繁琐和不友好,介绍一下一款非常实用且强大的icons集成库,react-native-vector-icons。

1.如何在Android项目中部署

Installation(安装组件)

$ npm install react-native-vector-icons --save

Android配置集成

1.编辑android / app / build.gradle(不是android / build.gradle)并添加以下内容:

apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"

project.ext.vectoricons = [
    iconFontNames: [ 'MaterialIcons.ttf', 'EvilIcons.ttf' ] // Name of the font files you want to copy
]

apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"

2.将Fonts文件夹中的内容复制到android / app / src / main / assets / fonts(注意小写字体文件夹)

3.编辑android / settings.gradle

rootProject.name = 'MyApp'

include ':app'

+ include ':react-native-vector-icons'
+ project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')

4.编辑android / app / build.gradle

apply plugin: 'com.android.application'

android {
  ...
}

dependencies {
  compile fileTree(dir: 'libs', include: ['*.jar'])
  compile "com.android.support:appcompat-v7:23.0.1"
  compile "com.facebook.react:react-native:+"  // From node_modules
+ compile project(':react-native-vector-icons')
}

5.编辑你的MainApplication.java(深入android / app / src / main / java / ...)

package com.myapp;

+ import com.oblador.vectoricons.VectorIconsPackage;

....

  @Override
  protected List getPackages() {
    return Arrays.asList(
      new MainReactPackage()
+   , new VectorIconsPackage()
    );
  }

}

6.rnpm

$ react-native link

然后重新编译app就可以了。

2.使用Icon

例如:

import Icon from 'react-native-vector-icons/FontAwesome';
const myIcon = ()

由于Icon是构建在Text组件之上的,大部分Text组件的style同样可以用在Icon的身上,比如:

  • backgroundColor
  • borderWidth
  • borderColor
  • borderRadius
  • padding
  • margin
  • color
  • fontSize --> 也可以使用size属性代替,效果是一样的

3.Icon.Button组件简单使用(左侧图标,右侧文字的按钮)

比如:

React-native Android react-native-vector-icons的配置使用_第1张图片
icon_button.png

使用示例代码:

import Icon from 'react-native-vector-icons/FontAwesome';
const myButton = (
  
    Login with Facebook
  
);

const customTextButton = (
  
    Login with Facebook
  
);

属性:

属性 描述 default
color 文本和图标颜色,如果需要不同的颜色,请使用iconStyle或嵌套文本组件 white
size 图标大小 20
iconStyle 样式仅适用于图标,适用于设置边距或不同颜色 {marginRight: 10}
backgroundColor 按钮背静颜色 #007AFF
borderRadius 按钮的边框半径,设置为0表示禁用 5
onPress 按下按钮时调用的函数 None

关于图标name的集合,请异步官方网站react-native-vector-icons directory

有大量的图标,基本上可以涵盖所有常用功能的需求:

React-native Android react-native-vector-icons的配置使用_第2张图片
icons_directory.png

你可能感兴趣的:(React-native Android react-native-vector-icons的配置使用)