Flutter点击事件处理插件click_nfse的使用

Flutter点击事件处理插件click_nfse的使用

特性

Models用于NFSe。

开始使用

在项目的pubspec.yaml文件中添加插件依赖:

dependencies:
  click_nfse: ^1.0.0

使用方法

查看示例代码以了解如何使用该插件。示例代码位于example/click_nfse_example.dart

示例代码

import 'package:click_nfse/click_nfse.dart';

void main() {
  // 示例JSON数据
  final docJson = '''
  {
    "parametrizacao": {
        "sandbox": true,
        "numeroLote": 13,
        "layoutProvedor": 0,
        "codigoMunicipio": 3303807,
        "nomeMunicipio": "PARATI",
        "ufMunicipio": "RJ",
        "usuario": "17996960000156",
        "senha": "1",
        "cnpjEmitente": "17996960000156",
        "imEmitente": "17996960000156",
        "nomeEmitente": "SUSELEI APARECIDA BECK"
    },
    "nfse": {
        "identificacaoRps": {
            "numero": 3359,
            "competencia": "2024-11-01 00:00:00"
        },
        "prestador": {
            "optanteSN": 2,
            "incentivadorCultural": 2,
            "cnpj": "01001001000113",
            "inscricaoMunicipal": "15000"
        },
        "tomador": {
            "tipo": 2,
            "cnpjCpf": "40493772000127",
            "inscricaoEstadual": "123",
            "razaoSocial": "EMPRESA TESTE",
            "logradouro": "rua",
            "numero": 123,
            "bairro": "CENTRO",
            "codigoMunicipio": 3303807,
            "cep": "23970000",
            "email": "email@teste.com.br"
        },
        "servico": {
            "itemListaServico": "01.05",
            "codigoCnae": "7732201",
            "codigoTributacaoMunicipio": "14.02",
            "codigoMunicipio": 3504800,
            "codigoPais": 1058,
            "exigibilidadeISS": 1,
            "municipioIncidencia": 3504800,
            "ufPrestacao": "RJ"
        },
        "itens": [
            {
                "descricao": "PLANO MENSAL - DE 28/07/2023 À 27/08/2023",
                "quantidade": 1.0,
                "valorUnitario": 181.65,
                "aliquota": 2.0093,
                "descontoIncondicionado": 0.0
            }
        ]
    }
  }''';

  // 解析JSON数据
  final doc = DocumentoModel.fromJson(docJson);

  // 验证数据
  doc.validate();

  // 打印结果
  print(doc.nfse!.toJson());
  print(doc.nfse!.toIni());
}

其他信息

更多示例代码请查看example/click_nfse_example.dart


更多关于Flutter点击事件处理插件click_nfse的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter点击事件处理插件click_nfse的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


click_nfse 是一个用于处理点击事件的 Flutter 插件。它可以帮助开发者更方便地管理和处理点击事件,特别是在需要处理复杂点击逻辑或需要监听点击事件的场景中。以下是如何在 Flutter 项目中使用 click_nfse 插件的基本步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  click_nfse: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 导入插件

在你的 Dart 文件中导入 click_nfse 插件:

import 'package:click_nfse/click_nfse.dart';

3. 使用 ClickNfse

click_nfse 插件提供了一个 ClickNfse 类,你可以用它来包装任何需要处理点击事件的 widget。

基本用法

ClickNfse(
  onTap: () {
    print('Widget clicked!');
  },
  child: Container(
    width: 100,
    height: 100,
    color: Colors.blue,
    child: Center(
      child: Text('Click Me'),
    ),
  ),
);

在上面的例子中,ClickNfse 包装了一个 Container,当用户点击这个 Container 时,onTap 回调函数会被触发,并在控制台打印 “Widget clicked!”。

处理长按事件

ClickNfse 还支持处理长按事件:

ClickNfse(
  onLongPress: () {
    print('Widget long pressed!');
  },
  child: Container(
    width: 100,
    height: 100,
    color: Colors.red,
    child: Center(
      child: Text('Long Press Me'),
    ),
  ),
);

在这个例子中,当用户长按 Container 时,onLongPress 回调函数会被触发,并在控制台打印 “Widget long pressed!”。

处理双击事件

ClickNfse 还支持处理双击事件:

ClickNfse(
  onDoubleTap: () {
    print('Widget double tapped!');
  },
  child: Container(
    width: 100,
    height: 100,
    color: Colors.green,
    child: Center(
      child: Text('Double Tap Me'),
    ),
  ),
);

在这个例子中,当用户双击 Container 时,onDoubleTap 回调函数会被触发,并在控制台打印 “Widget double tapped!”。

4. 自定义点击效果

ClickNfse 还允许你自定义点击效果,比如点击时的缩放、颜色变化等。你可以通过 ClickNfseeffect 参数来实现。

ClickNfse(
  onTap: () {
    print('Widget clicked with custom effect!');
  },
  effect: ClickEffect.scale(scale: 0.9),
  child: Container(
    width: 100,
    height: 100,
    color: Colors.orange,
    child: Center(
      child: Text('Custom Effect'),
    ),
  ),
);

在这个例子中,当用户点击 Container 时,Container 会缩放到 90% 的大小。

5. 处理多个事件

你可以同时处理多个事件,例如点击、长按和双击:

ClickNfse(
  onTap: () {
    print('Widget clicked!');
  },
  onLongPress: () {
    print('Widget long pressed!');
  },
  onDoubleTap: () {
    print('Widget double tapped!');
  },
  child: Container(
    width: 100,
    height: 100,
    color: Colors.purple,
    child: Center(
      child: Text('Multiple Events'),
    ),
  ),
);

在这个例子中,Container 会响应点击、长按和双击事件,并根据不同的事件类型打印不同的消息。

6. 禁用点击效果

如果你不想在点击时显示任何效果,可以将 effect 参数设置为 null

ClickNfse(
  onTap: () {
    print('Widget clicked without effect!');
  },
  effect: null,
  child: Container(
    width: 100,
    height: 100,
    color: Colors.teal,
    child: Center(
      child: Text('No Effect'),
    ),
  ),
);

在这个例子中,点击 Container 不会产生任何视觉效果,但仍然会触发 onTap 回调。

7. 自定义点击反馈

你可以通过 ClickNfsefeedback 参数来自定义点击反馈,例如震动反馈:

ClickNfse(
  onTap: () {
    print('Widget clicked with feedback!');
  },
  feedback: ClickFeedback.vibrate(),
  child: Container(
    width: 100,
    height: 100,
    color: Colors.yellow,
    child: Center(
      child: Text('Feedback'),
    ),
  ),
);
回到顶部