Flutter图标库插件tabler_icons_next的使用

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

Flutter图标库插件tabler_icons_next的使用

Pub.dev

Tabler Icons Next for Flutter 是一个不断更新以跟上上游最新版本的Flutter图标库插件。

🎨 图标库展示

查看所有可用图标:Tabler Icons Next Gallery

✴️ 迁移到v3

v3.x版本带来了一些重大变化。字体图标和SVG不再可用,每个图标现在都是一个独立的小部件。

v2示例

// v2
Icon(TablerIcons.check)
// 或
SvgPicture.string(TablerIconsSvg.check)

v3示例

// v3
Check()

为了避免混淆,你可以为这个包添加别名:

import 'package:tabler_icons_next/tabler_icons_next.dart' as tabler;

tabler.Check()

🎉 入门指南

直接导入

import 'package:tabler_icons_next/tabler_icons_next.dart';

Check()

注意: 一些图标名称可能与Dart不允许的名字冲突(例如Function被改为$Function)。

添加别名

为了防止与其他Flutter/Dart类名冲突(如ContainerBorderRadius),可以使用包别名:

import 'package:tabler_icons_next/tabler_icons_next.dart' as tabler;

tabler.Check()

设置线宽、颜色等

import 'package:tabler_icons_next/tabler_icons_next.dart' as tabler;

tabler.Check(
  height: 18,
  width: 18,
  strokeWidth: 1.5,
  color: Colors.teal,
)

Tabler Icons Next 使用 flutter_svg 绘制图标,允许你自定义图标的样式参数。

包裹在 IconTheme

类似于内置的 IconIconTheme,Tabler Icons Next 提供了一种从外部自定义图标主题的方法:

import 'package:tabler_icons_next/tabler_icons_next.dart' as tabler;

tabler.IconTheme(
  data: tabler.IconThemeData(
    strokeWidth: 1.5,
    color: Colors.teal,
  ),
  child: tabler.Check(),
)

例如,创建自己的按钮组件并自定义图标样式:

import 'package:tabler_icons_next/tabler_icons_next.dart' as tabler;

class MyIconButton extends StatelessWidget {
  const MyIconButton(
    this.icon, {
    super.key,
  });

  final tabler.Icon icon;

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      // ...
      child: tabler.IconTheme(
        data: tabler.IconThemeData(
          color: Colors.amber,
        ),
        child: icon,
      ),
    );
  }
}

示例代码

以下是一个完整的示例应用:

import 'package:flutter/material.dart';
import 'package:tabler_icons_next/tabler_icons_next.dart' as tabler;

void run() {
  runApp(const ExampleApp());
}

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Tabler Icons Next Example',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const HomePage(),
      debugShowCheckedModeBanner: false,
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: const Text('Tabler Icons Next Example'),
      ),
      body: const Center(
        child: tabler.BorderRadius(),
      ),
    );
  }
}

License

MIT


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

1 回复

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


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

步骤一:添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  tabler_icons_next: ^最新版本号 # 替换为实际最新版本号

添加完依赖后,运行以下命令以获取依赖包:

flutter pub get

步骤二:导入库

在你需要使用图标的Dart文件中,导入tabler_icons_next库。

import 'package:tabler_icons_next/tabler_icons_next.dart';

步骤三:使用图标

tabler_icons_next库提供了大量的图标,你可以直接在你的代码中使用它们。例如,在按钮或列表项中使用图标。

示例1:在按钮中使用图标

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Tabler Icons Next Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () {},
            icon: Icon(TablerIconsNext.home), // 使用Tabler图标
            label: Text('Home'),
          ),
        ),
      ),
    );
  }
}

示例2:在列表项中使用图标

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Tabler Icons Next List Example'),
        ),
        body: ListView(
          children: [
            ListTile(
              leading: Icon(TablerIconsNext.user), // 使用Tabler图标
              title: Text('User'),
            ),
            ListTile(
              leading: Icon(TablerIconsNext.settings), // 使用Tabler图标
              title: Text('Settings'),
            ),
          ],
        ),
      ),
    );
  }
}

完整代码结构

确保你的项目结构类似于以下形式:

your_flutter_project/
├── android/
├── ios/
├── lib/
│   └── main.dart
├── pubspec.yaml
└── ...

lib/main.dart文件中,你可以将上面的示例代码粘贴进去。

注意事项

  1. 版本兼容性:确保你使用的tabler_icons_next版本与你的Flutter SDK版本兼容。
  2. 图标名称:查阅tabler_icons_next的文档或源代码,以获取所有可用图标的名称。

通过这些步骤,你应该能够在你的Flutter项目中成功地使用tabler_icons_next图标库。

回到顶部