Flutter图标生成插件flutter_icons_plus的使用

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

Flutter图标生成插件flutter_icons_plus的使用

flutter_icons_plus 是一个可定制的图标库,灵感来源于 react-native-vector-icons

注意事项

  1. 这是 flutter_icons 包的改进版本,支持空安全。
  2. 感谢原作者的贡献。

内置图标集

  • AntDesign:由 AntFinance 提供(297个图标)
  • Entypo:由 Daniel Bruce 提供(411个图标)
  • EvilIcons:由 Alexander Madyankin 和 Roman Shamin 提供(v1.10.1,70个图标)
  • Feather:由 Cole Bemis 和贡献者提供(v4.7.0,266个图标)
  • FontAwesome:由 Dave Gandy 提供(v4.7.0,675个图标)
  • FontAwesome5:由 Fonticons, Inc. 提供(v5.7.0,1500个图标(免费))
  • Foundation:由 ZURB, Inc. 提供(v3.0,283个图标)
  • Ionicons:由 Ben Sperry 提供(v4.2.4,696个图标)
  • MaterialIcons:由 Google, Inc. 提供(v3.0.1,932个图标)
  • MaterialCommunityIcons:由 MaterialDesignIcons.com 提供(v4.0.96,4416个图标)
  • Octicons:由 Github, Inc. 提供(v8.0.0,177个图标)
  • Zocial:由 Sam Collins 提供(v1.0,100个图标)
  • SimpleLineIcons:由 Sabbir 和贡献者提供(v2.4.1,189个图标)
  • WeatherIcons:由 erikflowers 提供(v2.0.10,596个图标)

使用方法

要在项目中使用该插件,首先在 pubspec.yaml 文件中添加依赖项:

dependencies:
  flutter_icons_plus: ^最新版本号

然后执行 flutter pub get 命令来获取新的依赖项。

Widget

IconToggle
属性名 描述
selectedIconData 当值为 true 时显示的图标
unselectedIconData 当值为 false 时显示的图标
activeColor 当值为 true 时显示的图标颜色
inactiveColor 当值为 false 时显示的图标颜色
value 是否选中此 IconToggle
onChanged IconToggle 的值应改变时调用
duration 从选中图标到未选中图标的过渡时间
reverseDuration 从未选中图标到选中图标的过渡时间
transitionBuilder 选中图标和未选中图标之间的过渡动画函数

示例代码

以下是一个简单的示例,展示如何在 Flutter 应用程序中使用 flutter_icons_plus

import 'package:flutter/material.dart';
import 'package:flutter_icons_plus/flutter_icons_plus.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Icons Plus',
      theme: ThemeData(
        primarySwatch: Colors.green,
      ),
      home: const MyHomePage(title: 'Flutter Icons Plus'),
    );
  }
}

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

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Padding(
        padding: const EdgeInsets.all(20.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: const [
            Icon(FlutterIcons.stepForwardAnt),
            Icon(FlutterIcons.iosSearchIon),
            Icon(FlutterIcons.glassCheersFaw5s),
            Icon(FlutterIcons.acUnitMdi),
            Icon(FlutterIcons.addressBookFaw),
            Icon(FlutterIcons.addressBookFaw5s),
            Icon(FlutterIcons.$500pxEnt),
          ],
        ),
      ),
    );
  }
}

如何只保留项目中使用的字体

  1. 执行命令:

    pub global activate split_icon
    
  2. 在项目的 pubspec.yaml 文件中添加要保留的字体:

    flutter_icons:
      includes:
        - ant
        - mco
    
  3. 在项目目录中执行命令:

    split_icon
    

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

1 回复

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


当然,以下是如何在Flutter项目中使用flutter_icons_plus插件来生成图标的详细代码案例。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  flutter_icons_plus: ^x.y.z  # 请替换为最新版本号

然后运行以下命令来安装依赖:

flutter pub get

2. 配置flutter_icons_plus

接下来,你需要创建一个配置文件来指定你希望生成的图标集。在项目的根目录下创建一个名为flutter_icons.yaml的文件,并添加以下内容:

flutter_icons:
  image_path: "assets/icon/app_icon.png"  # 你的图标源文件路径
  android: true         # 是否为Android生成图标
  ios: true             # 是否为iOS生成图标
  web: true             # 是否为Web生成图标
  remove_alpha_ios: true # 是否移除iOS图标的alpha通道
  adaptive_icon_background: "#FFFFFF" # Android自适应图标背景色
  adaptive_icon_foreground: "assets/icon/foreground.png" # Android自适应图标前景图

3. 运行图标生成命令

配置完成后,你可以运行以下命令来生成图标:

flutter pub run flutter_icons_plus:main

4. 在代码中使用生成的图标

一旦图标生成完成,你就可以在代码中引用它们了。例如,在pubspec.yaml中引用生成的图标资源:

flutter:
  assets:
    - assets/icons/  # 确保路径正确

然后,在你的Dart代码中,你可以使用这些图标。例如,在AppBar中使用生成的图标:

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Icons Plus Demo'),
          iconTheme: IconThemeData(
            color: Colors.white,
          ),
          leading: IconButton(
            icon: ImageIcon(
              AssetImage('assets/icons/ic_launcher_foreground.png'), // 确保文件名正确
            ),
            onPressed: () { Navigator.pop(context); },
          ),
        ),
        body: Center(
          child: Text('Hello, Flutter Icons Plus!'),
        ),
      ),
    );
  }
}

注意事项

  1. 确保你的图标源文件(如app_icon.png)位于指定的路径下。
  2. 确保flutter_icons.yaml中的配置正确无误。
  3. 在使用生成的图标时,注意引用正确的资源路径和文件名。

通过以上步骤,你就可以在Flutter项目中使用flutter_icons_plus插件来生成和引用图标了。

回到顶部