Flutter如何生成QR二维码

我想在Flutter应用中实现生成QR二维码的功能,但不太清楚具体该怎么做。请问有哪些推荐的Flutter库可以实现这个功能?能否提供一个简单的代码示例说明如何生成并显示二维码?生成的二维码能不能自定义颜色和大小?如果要在生成的二维码中添加Logo该怎样处理?

2 回复

使用qr_flutter库生成QR码。安装后,在pubspec.yaml添加依赖,然后使用QrImageView组件,传入data参数即可显示二维码。

更多关于Flutter如何生成QR二维码的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在 Flutter 中生成 QR 二维码,推荐使用 qr_flutter 库,它简单易用且功能丰富。以下是详细步骤:

1. 添加依赖

pubspec.yamldependencies 中添加:

dependencies:
  qr_flutter: ^4.2.0

运行 flutter pub get 安装。

2. 基本用法

import 'package:qr_flutter/qr_flutter.dart';

// 在 Widget 中使用
QrImageView(
  data: 'https://example.com',  // 二维码内容
  version: QrVersions.auto,     // 自动选择版本
  size: 200.0,                  // 尺寸
)

3. 自定义样式

QrImageView(
  data: 'Hello QR Code!',
  size: 200,
  backgroundColor: Colors.white,
  // 添加 Logo
  embeddedImage: AssetImage('assets/logo.png'),
  embeddedImageStyle: QrEmbeddedImageStyle(size: Size(40, 40)),
)

4. 高级配置

QrImageView(
  data: 'Custom QR',
  size: 200,
  gapless: false,               // 取消默认边距
  padding: EdgeInsets.all(10),
  eyeStyle: QrEyeStyle(
    color: Colors.blue,
    eyeShape: QrEyeShape.square,
  ),
  dataModuleStyle: QrDataModuleStyle(
    color: Colors.black,
    dataModuleShape: QrDataModuleShape.circle,
  ),
)

注意事项:

  • 内容长度影响二维码复杂度,过长可能无法识别
  • 可结合 flutter_svg 导出为 SVG 格式
  • 测试时确保二维码能被标准扫描器识别

这是最常用的 QR 二维码生成方案,可满足绝大多数需求。如需更复杂功能(如动态生成),可查看库文档的进阶用法。

回到顶部