Flutter自定义图标使用求助:如何添加非内置图标(无需第三方库)
不依赖第三方库添加Flutter自定义图标方案
不用pub第三方库,也不用图片格式,直接用自定义字体图标就能解决,步骤如下:
制作自定义字体文件
- 把需要的非内置图标(优先用SVG格式)整理好,保证每个图标的尺寸统一(比如和Flutter内置图标一致,设置
viewBox="0 0 24 24") - 用本地开源工具(比如免费的FontForge)将这些SVG文件转换为
.ttf格式的字体文件,导出后放到项目的assets/fonts文件夹中(没有该文件夹就新建)
- 把需要的非内置图标(优先用SVG格式)整理好,保证每个图标的尺寸统一(比如和Flutter内置图标一致,设置
配置项目的pubspec.yaml
在项目的pubspec.yaml中添加字体资源配置:flutter: fonts: - family: CustomIcons fonts: - asset: assets/fonts/CustomIcons.ttf配置完成后执行
flutter pub get让配置生效定义自定义图标类(兼容现有代码)
创建一个和你现有Icon类格式统一的类,填入每个自定义图标的Unicode编码(转换字体时工具会给出对应编码):class CustomIcons { static const IconData customDownload = IconData(0xe900, fontFamily: 'CustomIcons'); static const IconData customShare = IconData(0xe901, fontFamily: 'CustomIcons'); // 根据实际图标数量添加更多 }混合使用内置与自定义图标
现在可以直接在原有代码中混用两种图标:// 使用Flutter内置图标 Icon(Icons.home); // 使用自定义图标 Icon(CustomIcons.customDownload);
内容的提问来源于stack exchange,提问作者DENIS DenUp
相关产品推荐
相关产品推荐

