Flutter图标库插件flutter_lucide的使用
Flutter图标库插件flutter_lucide的使用
flutter_lucide
Lucide 是一个免费、开源的图标集,包含超过 1450+ 个图标(版本 0.468.0),源自流行的 Feather 图标集。它作为一个 Flutter 包提供,易于集成。具有简洁、现代的设计,非常适合增强用户界面。
更多详情请访问 Lucide 图标库 https://lucide.dev/。
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。如果觉得这个包有用,请给它点个星⭐。我们开放接受 enhancements
、bug-fixes
和 suggestions
,欢迎您提交 issue。
许可证
MIT License
维护者
免责声明
这不是官方的 Lucide Icon 包。所有资产均由其各自的所有者拥有(https://lucide.dev/)。请访问他们的网站获取更多信息。这个包是为了帮助 Flutter 社区而创建的。
更多关于Flutter图标库插件flutter_lucide的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于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
组件的size
和color
属性来自定义图标的大小和颜色:
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
类中提供的各种图标。