FlutterのIconで好きなアイコンを追加したいなと、
いろいろ調べてみたときの備忘録(*´ω`*)
IconData
はフォントらしく、フォントファイルを追加する必要があるっぽい。
Icon(Icons.copy); // Icons.copyの中身 /// <i class="material-icons md-36">copy</i> — material icon named "copy". static const IconData copy = IconData(0xe190, fontFamily: 'MaterialIcons');
カスタムアイコンを用意する
カスタムアイコンを追加するのに必要なファイルを用意していくれる、
ジェネレータがあるのでそれを使うと便利。
Material Design IconやFont Awesomeなどから、
好きなアイコンを選んで、ttfとdartファイルを生成してくれる。
また、SVGファイルをアップロードすることもできるので、
オリジナルのアイコンも利用できる。
使い方
アイコンデータの生成
好きなアイコンを選んで、
dartファイルのクラス名になる名前を入力して、
(例: MyIcons
)
ダウンロードボタンを押すと、
ファイルを生成してくれる。
ダウンロードしたzipを解凍すると、こんな感じ。
flutter-icons-c59624fc/ ├── config.json ... 再ダウンロード時に使う設定ファイル ├── fonts │ └── MyIcons.ttf ... フォントファイル └── my_icons_icons.dart ... IconDataのクラス
config.json
は、アイコンを増やしたいなと思ったときに、
同じ設定を復元するのに利用するファイル。
フォントファイルの配置
ダウンロードしたファイルを配置する。
MyIcons.ttf
をassets/fonts/
に配置して、
pubspec.yaml
に設定を追加する。
# pubspec.yaml flutter: fonts: - family: MyIcons fonts: - asset: assets/fonts/MyIcons.ttf
普通のフォントファイルを同じ感じ。好きな場所でOK。
dartファイルの配置
my_icons_icons.dart
をlib/
直下に配置。
これも好きな場所でOK
自動生成されてたファイルの中身はこんな感じ。
// lib/my_icons_icons.dart import 'package:flutter/widgets.dart'; class MyIcons { MyIcons._(); static const _kFontFam = 'MyIcons'; static const String? _kFontPkg = null; static const IconData twitter = IconData(0xf099, fontFamily: _kFontFam, fontPackage: _kFontPkg); }
カスタムアイコンを利用する
あとは、MyIcons
をつかえばOK(*´ω`*)
import './my_icons_icons.dart'; Icon(MyIcons.twitter, color: Color(0xFF1da1f2));
以上!! これでいろんなアイコンに対応できるようになる。。(*´ω`*)