【Flutter】第三方Iconfont使用

下載字體資源文件

下載網(wǎng)上ttf文件和對(duì)應(yīng)的css文件,這里以阿里巴巴圖標(biāo)庫(kù)使用為例。下載資源文件下載,解壓縮目錄結(jié)構(gòu):

demo.css
demo_index.html
iconfont.css
iconfont.eot
iconfont.js
iconfont.svg
iconfont.ttf
iconfont.woff
iconfont.woff2 

將上面iconfont.css文件轉(zhuǎn)換成dart可使用類型

這里推薦一個(gè)工具:iconfont 轉(zhuǎn) Flutter IconData,將iconfont.css拖拽進(jìn)去生成一下文件內(nèi)容:

// iconfont.dart 文件內(nèi)容
library iconfont; // 新添加內(nèi)容,包名[1]

import 'package:flutter/widgets.dart';

class IconFont { 
    static const String _family = 'iconfont';
    IconFont._();
    static const IconData icon_message = IconData(0xe610, fontFamily: _family);
    static const IconData icon_message1 = IconData(0xe608, fontFamily: _family);
    static const IconData icon_qunliao = IconData(0xe614, fontFamily: _family);
    ...
}

建立iconfont目錄文件結(jié)構(gòu)

在項(xiàng)目中l(wèi)ib文件夾下新建iconfont文件夾

- iconfont
    - fonts
      - iconfont.ttf    // 將上述 iconfont.ttf 文件復(fù)制進(jìn)去
    - lib
      - iconfont.dart    // 新建文件,將上述中的 iconfont.dart 復(fù)制進(jìn)來(lái)
    - pubspec.yaml    // 新建文件

pubspec.yaml

name: iconfont  
description: The font for my application
version: 1.0.0

environment:
  sdk: ">=2.1.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

flutter:
  fonts:
    - family: Iconfont
      fonts:
        - asset: fonts/iconfont.ttf

引用和使用

  • 引入: 修改【例如: wx_demo】項(xiàng)目中pubspec.yaml

...
dependencies:
  flutter:
    sdk: flutter
  ...
  iconfont:
      path: lib/iconfont/   # 在這里引入第三方icon庫(kù)
  ...
...
  • 使用

import 'package:iconfont/iconfont.dart';

Icon icon = Icon(IconFont.icon_message2) // 注意:這里的`IconFont`要和`iconfont.dart`中類名一致。

結(jié)尾文件目錄參考

wx_demo目錄結(jié)構(gòu)
wx_demo/lib/iconfont目錄結(jié)構(gòu)

參考:https://segmentfault.com/a/1190000017978633
依賴未發(fā)布的 package

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容