Flutter图标管理插件new_flutter_icons的使用

发布于 1周前 作者 sinazl 来自 Flutter

Flutter图标管理插件new_flutter_icons的使用

Customizable Icons for Flutter, Inspired by react-native-vector-icons, based in flutter-icons

包含的图标集

浏览所有图标集。

  • AntDesign from AntFinance (298个图标)
  • Entypo by Daniel Bruce (v1.0.1 with 411个图标)
  • EvilIcons designed by Alexander Madyankin & Roman Shamin (v1.10.1 with 70个图标)
  • Feather created by Cole Bemis & Contributors (v4.28.0 featuring 286个图标)
  • FontAwesome by Dave Gandy (v4.7.0 containing 675个图标)
  • FontAwesome 5 from Fonticons, Inc. (v5.15.3 offering 1598个免费图标)
  • FontAwesome 6 designed by Fonticons, Inc. (v6.1.2 featuring 2016个免费图标)
  • Fontisto created by Kenan Gündoğan (v3.0.4 featuring 615个图标)
  • Foundation by ZURB, Inc. (v3.0 with 283个图标)
  • Ionicons crafted by Ionic (v7.1.0 containing 1338个图标)
  • MaterialIcons by Google, Inc. (v4.0.0 featuring 2189个图标)
  • MaterialCommunityIcons from MaterialDesignIcons.com (v6.5.95 including 6596个图标)
  • Octicons designed by Github, Inc. (v16.3.1 with 250个图标)
  • Zocial by Sam Collins (v1.4.0 with 100个图标)
  • SimpleLineIcons crafted by Sabbir & Contributors (v2.5.5 with 189个图标)
  • Weather Icons by erikflowers (v2.0.10, 596个图标)

使用方法

要使用此插件,在你的 pubspec.yaml 文件中添加 new_flutter_icons 作为依赖项。

组件

IconToggle

属性 描述
selectedIconData 当值为真时显示的图标
unselectedIconData 当值为假时显示的图标
activeColor 当值为真时显示的图标颜色
inactiveColor 当值为假时显示的图标颜色
value 是否选中此 IconToggle
size 更改图标大小(默认为22)
onChanged 在 IconToggle 的值应更改时调用
duration 从选中图标到未选中图标的过渡时间
reverseDuration 从未选中图标到选中图标的过渡时间
transitionBuilder 选中图标与未选中图标之间的过渡动画函数

示例代码

你可以在项目中添加以下代码:

// 导入包
import 'package:flutter/material.dart';
import 'package:new_flutter_icons/new_flutter_icons.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        useMaterial3: false,
      ),
      home: const MyHomePage(title: 'New Flutter Icons'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  [@override](/user/override)
  MyHomePageState createState() => MyHomePageState();
}

class MyHomePageState extends State<MyHomePage> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: const Padding(
        padding: EdgeInsets.all(20.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            Icon(Icons.ac_unit),
            Icon(AntDesign.stepforward),
            Icon(Ionicons.search),
            Icon(FontAwesome.glass),
            Icon(MaterialIcons.ac_unit),
            Icon(FontAwesome5.address_book),
            Icon(FontAwesome5Solid.address_book),
            Icon(FontAwesome5Brands.$500px),
            Icon(WeatherIcons.wi_alien),
            Icon(WeatherIcons.wi_cloud),
            Icon(WeatherIcons.wi_day_rain)
          ],
        ),
      ),
    );
  }
}

更多关于Flutter图标管理插件new_flutter_icons的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter图标管理插件new_flutter_icons的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用new_flutter_icons插件来管理图标的示例代码。new_flutter_icons插件允许你轻松地在Flutter应用中集成和使用各种图标库。

1. 添加依赖

首先,你需要在pubspec.yaml文件中添加new_flutter_icons依赖:

dependencies:
  flutter:
    sdk: flutter
  new_flutter_icons: ^X.X.X  # 请替换为最新版本号

然后运行flutter pub get来安装依赖。

2. 运行图标生成脚本

new_flutter_icons插件提供了一个命令行工具来生成图标代码。你需要创建一个包含图标名称的文件,然后运行生成脚本。

创建图标配置文件

在项目的根目录下创建一个名为iconfont.json的文件,内容如下(这里以FontAwesome为例):

{
  "font_package": "font_awesome_flutter",
  "class_prefix": "IconDataFa",
  "custom_icons": [],
  "fonts": [
    {
      "class": "FontAwesomeIcons",
      "code_points": {
        "home": 57344,
        "search": 57345,
        // 添加更多图标及其对应的code points
      }
    }
  ]
}

运行生成脚本

在终端中导航到项目根目录,并运行以下命令:

flutter pub run new_flutter_icons:main

该命令会读取iconfont.json文件并生成一个包含图标的Dart文件,通常名为icons.dart

3. 使用生成的图标

现在,你可以在Flutter项目中使用生成的图标了。以下是一个示例:

import 'package:flutter/material.dart';
import 'icons.dart';  // 导入生成的图标文件

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Icons Demo'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Icon(Icons.home),  // Flutter自带的图标
              Icon(IconDataFa.home),  // new_flutter_icons生成的图标
              Icon(IconDataFa.search),  // new_flutter_icons生成的图标
            ],
          ),
        ),
      ),
    );
  }
}

注意事项

  1. 图标名称:确保在iconfont.json文件中正确配置图标的名称和对应的code points。
  2. 字体包:根据使用的图标库(如FontAwesome、Material Icons等),调整font_package字段的值。
  3. 自定义图标:如果需要添加自定义图标,可以在custom_icons字段中定义。

通过上述步骤,你就可以在Flutter项目中轻松管理和使用各种图标了。

回到顶部