Flutter图标库插件flutter_lucide的使用

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

Flutter图标库插件flutter_lucide的使用

flutter_lucide

pub package Score Platform GitHub stars GitHub forks GitHub issues GitHub pull requests GitHub contributors GitHub last commit

Lucide 是一个免费、开源的图标集,包含超过 1450+ 个图标(版本 0.468.0),源自流行的 Feather 图标集。它作为一个 Flutter 包提供,易于集成。具有简洁、现代的设计,非常适合增强用户界面。

更多详情请访问 Lucide 图标库 https://lucide.dev/

Lucide

Lucide 版本:0.468.0

使用方法

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

dependencies:
  flutter_lucide: ^1.6.1

示例代码

以下是一个完整的示例应用程序,展示了如何使用 flutter_lucide 插件中的图标。

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

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

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

  @override
  Widget build(BuildContext context) => MaterialApp(
        title: 'Lucide Icons Example',
        theme: ThemeData(
          colorScheme: ColorScheme.fromSeed(seedColor: Colors.orange),
          useMaterial3: true,
        ),
        home: const MyHomePage(title: 'Lucide Icons Example'),
      );
}

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

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() => setState(() => _counter++);

  void _decrementCounter() => setState(() => _counter--);

  void _resetCounter() => setState(() => _counter = 0);

  @override
  Widget build(BuildContext context) => Scaffold(
        appBar: AppBar(
          backgroundColor: Theme.of(context).colorScheme.inversePrimary,
          title: Text(widget.title),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              const Text(
                'You have pushed the button this many times: ',
              ),
              if (_counter > 0) ...[
                const SizedBox(height: 16),
                IconButton.filled(
                    onPressed: _incrementCounter,
                    icon: const Icon(
                      LucideIcons.plus,
                      size: 32,
                    )),
              ] else if (_counter < 0) ...[
                const SizedBox(height: 16),
                IconButton.filled(
                  onPressed: _decrementCounter,
                  icon: const Icon(
                    LucideIcons.minus,
                    size: 32,
                  ),
                ),
              ],
              Text(
                '$_counter',
                style: Theme.of(context).textTheme.headlineLarge,
              ),
            ],
          ),
        ),
        floatingActionButton: Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            FloatingActionButton(
              onPressed: _incrementCounter,
              child: const Icon(LucideIcons.plus),
            ),
            const SizedBox(width: 8),
            FloatingActionButton(
              onPressed: _resetCounter,
              child: const Icon(LucideIcons.refresh_ccw),
            ),
            const SizedBox(width: 8),
            FloatingActionButton(
              onPressed: _decrementCounter,
              child: const Icon(LucideIcons.minus),
            ),
          ],
        ),
      );
}

Issues & 反馈

如果您希望为这个仓库做贡献,欢迎提交 Pull Requests。如果觉得这个包有用,请给它点个星⭐。我们开放接受 enhancementsbug-fixessuggestions,欢迎您提交 issue

许可证

MIT License

维护者

免责声明

这不是官方的 Lucide Icon 包。所有资产均由其各自的所有者拥有(https://lucide.dev/)。请访问他们的网站获取更多信息。这个包是为了帮助 Flutter 社区而创建的。


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

1 回复

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


当然,以下是如何在Flutter项目中使用flutter_lucide图标库的代码示例。flutter_lucide是一个轻量级的Flutter图标库,提供了大量的Lucide图标。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  flutter_lucide: ^latest_version  # 请替换为最新版本号

运行flutter pub get以获取依赖项。

2. 导入包

在你的Dart文件中导入flutter_lucide包:

import 'package:flutter_lucide/flutter_lucide.dart';

3. 使用图标

你可以使用LucideIcons类中的图标。例如,在main.dart中使用一个图标按钮:

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

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

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

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Lucide Example'),
      ),
      body: Center(
        child: IconButton(
          icon: Icon(LucideIcons.home),  // 使用Lucide图标
          onPressed: () {
            // 点击事件处理
            ScaffoldMessenger.of(context).showSnackBar(
              SnackBar(content: Text('Home icon pressed')),
            );
          },
        ),
      ),
    );
  }
}

在这个例子中,我们创建了一个简单的Flutter应用,其中包含一个带有Lucide图标的按钮。当用户点击按钮时,会显示一个SnackBar。

4. 自定义图标大小和颜色

你可以通过Icon组件的sizecolor属性来自定义图标的大小和颜色:

IconButton(
  icon: Icon(
    LucideIcons.home,
    size: 48,  // 图标大小
    color: Colors.red,  // 图标颜色
  ),
  onPressed: () {
    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(content: Text('Home icon pressed')),
    );
  },
)

5. 完整代码示例

下面是完整的main.dart代码示例:

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

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

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

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Lucide Example'),
      ),
      body: Center(
        child: IconButton(
          icon: Icon(
            LucideIcons.home,
            size: 48,
            color: Colors.red,
          ),
          onPressed: () {
            ScaffoldMessenger.of(context).showSnackBar(
              SnackBar(content: Text('Home icon pressed')),
            );
          },
        ),
      ),
    );
  }
}

这样,你就成功地在Flutter项目中使用flutter_lucide图标库了。根据需求,你可以使用LucideIcons类中提供的各种图标。

回到顶部