Skip to content

Flutter 图标资源大全

INFO

本文最后更新于 2024年02月18日,基于 Flutter 3.x 版本

问题描述

许多 Flutter 开发者在寻找合适的图标时遇到困难。Flutter 提供了丰富的内置图标,但开发者往往不清楚如何找到所有可用的图标资源,或是如何扩展图标库来满足特定设计需求。

解决方案

内置 Material 图标

Flutter 默认提供了丰富的 Material Design 图标,无需额外安装依赖:

dart
Icon(
  Icons.search, // 搜索图标
  size: 24.0,
  color: Colors.blue,
)

访问官方文档查看所有可用图标:

第三方图标库

以下是常用的第三方图标库,可通过 pub.dev 安装:

dart
import 'package:font_awesome_flutter/font_awesome_flutter.dart';

FontAwesomeIcons.google // Font Awesome 图标
dart
import 'package:ionicons/ionicons.dart';

Ionicons.search // Ionicons 图标
dart
import 'package:fluentui_system_icons/fluentui_system_icons.dart';

FluentIcons.search_24_regular // Fluent UI 图标
dart
import 'package:eva_icons_flutter/eva_icons_flutter.dart';

EvaIcons.search // Eva 图标

图标整合包

Icon Forest 包整合了超过 16 万个图标,包含多个流行图标库:

yaml
dependencies:
  icon_forest: ^2.0.0
dart
import 'package:icon_forest/icon_forest.dart';

IconForest.ionicons_search // 使用 Icon Forest

自定义图标生成

使用以下工具生成自定义图标:

  • 🔗 FlutterIcon.com - 将 SVG 转换为 Flutter 图标字体
  • 🔗 Icon Kitchen - 生成应用启动图标(Android、iOS、Web、macOS)

动态图标

对于需要动画效果的场景:

yaml
dependencies:
  rive_animated_icon: ^1.0.0  # Rive 动画图标
  animated_icon: ^2.0.0       # 通用动画图标

实用技巧

快速搜索技巧

在代码编辑器中输入 Icons. 后,IDE 会自动显示所有可用图标,并提供视觉预览(如果插件支持)。

性能考虑

虽然图标字体通常很轻量,但应避免一次性加载过多不同图标包,特别是对于性能敏感的移动应用。

图标资源速查表

为了方便参考,可以下载 Material Icons 的 PDF 速查表:

总结

Flutter 提供了多种图标解决方案:

  1. 内置 Material Icons - 开箱即用,覆盖面广
  2. 专业图标库 - Font Awesome、Ionicons 等提供专业设计图标
  3. 整合包 - Icon Forest 等包提供一站式图标解决方案
  4. 自定义工具 - 支持将自定义 SVG 转换为 Flutter 图标
  5. 动态图标 - 支持丰富的动画效果

根据项目需求选择合适的图标方案,既能保证设计一致性,又能提高开发效率。