Flutter图标库插件outline_material_icons的使用

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

Flutter图标库插件 outline_material_icons 的使用

outline_material_icons 是一个提供 Material Design 网站上 ‘outline’ 主题图标的 Flutter 插件。这些图标在默认的 Flutter 图标库中不可用,也没有作为 .ttf 字体文件提供。

功能概述

  • 提供了 Material Design 网站上的 ‘outline’ 主题图标。
  • 包含了一个 Map<String, int>,其中包含蛇形命名的图标名称和对应的代码点。
  • 由于单色限制,所有部分填充的图标(如部分电量图标)都被移除。

使用方法

步骤 1:添加依赖

首先,在你的 pubspec.yaml 文件中添加对 outline_material_icons 的依赖:

dependencies:
  flutter:
    sdk: flutter
  outline_material_icons: ^latest_version

记得将 ^latest_version 替换为最新版本号。

步骤 2:导入并使用

接下来,在 Dart 文件中导入该包,并使用 OMIcons 类来显示图标。

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

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Icon(OMIcons.sentimentSatisfied);
  }
}

示例 Demo

以下是一个完整的示例应用程序,展示了如何浏览和选择不同的 outline_material_icons 图标:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'outline_material_icons example',
      home: MyHomePage(title: 'outline_material_icons example'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  final String title;

  MyHomePage({this.title = ''});

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

class _MyHomePageState extends State<MyHomePage> {
  String selectedName = '';
  IconData? selectedIcon;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Column(
        children: <Widget>[
          Padding(
            padding: const EdgeInsets.all(16.0),
            child: Row(
              children: <Widget>[
                selectedIcon != null ? Icon(selectedIcon, size: 48.0) : Container(),
                Flexible(
                  child: Text(
                    selectedName.isNotEmpty ? selectedName : "Select an icon",
                    style: Theme.of(context).textTheme.subtitle1,
                    overflow: TextOverflow.ellipsis,
                  ),
                ),
              ],
            ),
          ),
          Expanded(
            child: GridView.builder(
              gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
                crossAxisCount: 6,
              ),
              itemCount: OMIcons.codePoints.length,
              itemBuilder: (context, index) => InkWell(
                onTap: () {
                  setState(() {
                    selectedName = OMIcons.codePoints.keys.toList()[index];
                    selectedIcon = IconData(
                      OMIcons.codePoints[selectedName]!,
                      fontFamily: 'outline_material_icons',
                      fontPackage: 'outline_material_icons',
                    );
                  });
                },
                child: Icon(
                  IconData(
                    OMIcons.codePoints.values.toList()[index],
                    fontFamily: 'outline_material_icons',
                    fontPackage: 'outline_material_icons',
                  ),
                ),
              ),
            ),
          ),
        ],
      ),
    );
  }
}

注意事项

  • 所有部分填充的图标(如部分电量图标)被移除了。
  • 带下划线的图标(如 border_color, format_color_fillformat_color_text)已将其线条变为实线。
  • 某些图标名称进行了修改以避免 Dart 错误或冲突,例如 360 改为 icon360class 改为 classIconsync 改为 syncIcon

通过上述步骤和示例代码,你可以轻松地在 Flutter 应用程序中使用 outline_material_icons 提供的各种图标。


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

1 回复

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


当然,以下是如何在Flutter项目中使用outline_material_icons图标库的详细步骤和代码示例。

步骤 1: 添加依赖

首先,在你的pubspec.yaml文件中添加outline_material_icons依赖。确保你的Flutter环境已正确设置,并且你有一个正在运行的Flutter项目。

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

然后,在终端中运行以下命令来安装依赖:

flutter pub get

步骤 2: 导入图标库

在你的Dart文件中(例如main.dart),导入outline_material_icons包。

import 'package:outline_material_icons/outline_material_icons.dart';

步骤 3: 使用图标

现在,你可以在Flutter的widget中使用OutlineMaterialIcons类来引用图标。以下是一个简单的示例,展示如何在AppBarButton中使用这些图标。

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Outline Material Icons Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Outline Material Icons'),
        leading: IconButton(
          icon: Icon(OutlineMaterialIcons.menu),
          onPressed: () {
            // Handle menu button press
          },
        ),
        actions: <Widget>[
          IconButton(
            icon: Icon(OutlineMaterialIcons.search),
            onPressed: () {
              // Handle search button press
            },
          ),
        ],
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Hello, Flutter!',
              style: TextStyle(fontSize: 24),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () {
                // Handle button press
              },
              child: Icon(OutlineMaterialIcons.add),
              label: Text('Add'),
            ),
          ],
        ),
      ),
    );
  }
}

解释

  1. 依赖添加:在pubspec.yaml中添加outline_material_icons依赖。
  2. 导入包:在Dart文件中导入outline_material_icons包。
  3. 使用图标:通过Icon(OutlineMaterialIcons.your_icon_name)的方式在widget中使用图标。

这样,你就可以在Flutter项目中轻松地使用outline_material_icons提供的图标了。你可以根据需要查阅outline_material_icons的文档或源代码,以找到所有可用的图标名称。

回到顶部