在flutter使用多色图标以iconfont为例

4次阅读

共计 2074 个字符,预计需要花费 6 分钟才能阅读完成。

应用 flutter 写的电影播放软件:https://github.com/Mockingbird1234/skapp

开源不易,感兴趣的小伙伴给个 star 吧。

多色图标

flutter 中自定义了很多图标,我个别都会在这个网站找 flutter 中的图标:https://www.fluttericon.com/

这种图标只反对纯色,如果你不会设计而且还须要多色图标,那么就能够应用阿里巴巴的图标库:https://www.iconfont.cn/

在 flutter 中应用 iconfont

上面以我我的项目中应用 iconfont 的多色图标进行解说,次要用了 githut 一个开源我的项目:https://github.com/iconfont-cli/flutter-iconfont-cli,能够浏览这个开源我的项目的 readme 文件进行一步步搭建应用。

1. 在我的项目文件 pubspec.yml 中退出 flutter 插件 flutter_svg

{
  ...

  dependencies:
    # 版本号请以官网库的为准:https://github.com/dnfield/flutter_svg/tags
    flutter_svg: ^0.14.1
  ...
}

留神 :这里的flutter_svg 最好应用 0.17.3 版本,经测试这个版本不会呈现什么问题,其余版本可能会有报错。

而后执行 flutter 插件安装操作

flutter packages get

接着装置全局插件(基于 nodeJs)

npm install flutter-iconfont-cli -g

2. 生成配置文件

npx iconfont-init

此时我的项目根目录会生成一个 iconfont.json 的文件,内容如下:

{
    "symbol_url": "请参考 README.md,复制官网提供的 JS 链接",
    "save_dir": "./lib/iconfont",
    "trim_icon_prefix": "icon",
    "default_icon_size": 18,
    "summary_component_name": "IconFont"
}

配置参数阐明:

symbol_url: 请间接复制 iconfont 官网提供的我的项目链接。请务必看清是 .js 后缀而不是.css 后缀。如果你当初还没有创立 iconfont 的仓库,那么能够填入这个链接去测试:http://at.alicdn.com/t/font_1373348_ghk94ooopqr.js

save_dir: 依据 iconfont 图标生成的组件寄存的地位。每次生成组件之前,该文件夹都会被清空。

trim_icon_prefix: 如果你的图标有通用的前缀,而你在应用的时候又不想反复去写,那么能够通过这种配置这个选项把前缀对立去掉。

default_icon_size: 咱们将为每个生成的图标组件退出默认的字体大小,当然,你也能够通过传入 props 的形式扭转这个 size 值。

summary_component_name: 就是汇总组件的名称,默认名称为 IconFont,您也能够改成 Icon 或者您喜爱的名字。记住,它是一个类名,您必须恪守 Dart 中对于类名的语法规定,请尽量以大写字母结尾。

3. 开始生成 React 规范组件

npx iconfont-flutter

生成后查看您设置的保留目录中是否含有所有的图标

4. 应用

图标尺寸

依据配置default_icon_size,每个图标都会有一个默认的尺寸,你能够随时笼罩。

class App extends StatelessWidget {
    @override
    Widget build(BuildContext context) {return IconFont(IconNames.alipay, size: 100);
    }
}

图标单色

单色图标,如果不指定色彩值,图标将渲染本来的色彩。如果你想设置为其余的色彩,那么设置一个你想要的色彩即可。

留神:如果你在 props 传入的 color 是字符串而不是数组,那么即便本来是多色调的图标,也会变成单色图标。

IconFont(IconNames.alipay, color: 'red');

图标多色调

多色调的图标,如果不指定色彩值,图标将渲染本来的多色调。如果你想设置为其余的色彩,那么设置一组你想要的色彩即可

IconFont(IconNames.alipay, colors: ['green', 'orange']);

色彩组的数量以及排序,须要依据以后图标的信息来确定。您须要进入图标组件中查看并得出结论。

更新图标

当您在 iconfont.cn 中的图标有变更时,只需更改配置 symbol_url,而后再次执行 Step 3 即可生成最新的图标组件

# 批改 symbol_url 配置后执行:npx iconfont-flutter

以上内容均来自 https://github.com/iconfont-cli/flutter-iconfont-cli

成果展现

更多成果欢送到 https://github.com/Mockingbird1234/skapp 下载软件的 realease 版本查看。

正文完
 0