Flutter格式化工具集合插件uiv_formater_collection的使用

Flutter格式化工具集合插件uiv_formater_collection的使用

这是一个我在业余时间为我的项目构建的Flutter输入格式化工具集合。它包含了一些常用的格式化功能。

功能

  • UIVInputFormaterCurrency:用于货币格式化的工具类。

使用方法

使用 UIVInputFormaterCurrency 进行数值与字符串的相互转换
var fomater = UIVInputFormaterCurrency();

double decimalNominal = 73883.9655;
String decimalNominalText = "73,883.9655";

// 将数值(double)转换为字符串(String),并格式化为两位小数
fomater.formatDoubleToString(decimalNominal);
// 结果(String):"73,883.97"

// 将字符串(String)转换为数值(double),并进行四舍五入
fomater.formatStringToDouble(decimalNominalText, isRounded: true);
// 结果(double):73883.97

// 将字符串(String)转换为数值(double),不进行四舍五入
fomater.formatStringToDouble(decimalNominalText, isRounded: false);
// 结果(double):73883.9655
TextField 中使用 UIVInputFormaterCurrency 作为输入格式化器

以下是一个完整的示例代码,展示如何在 TextField 中使用 UIVInputFormaterCurrency 插件:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('UIVInputFormaterCurrency 示例'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(16.0),
          child: InputFormaterExample(),
        ),
      ),
    );
  }
}

class InputFormaterExample extends StatefulWidget {
  @override
  _InputFormaterExampleState createState() => _InputFormaterExampleState();
}

class _InputFormaterExampleState extends State<InputFormaterExample> {
  final TextEditingController _textController = TextEditingController();

  @override
  void dispose() {
    _textController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        TextField(
          controller: _textController,
          keyboardType: TextInputType.numberWithOptions(decimal: true),
          inputFormatters: [
            // 使用 UIVInputFormaterCurrency 格式化输入
            UIVInputFormaterCurrency(),
          ],
          decoration: InputDecoration(
            labelText: '输入金额',
            border: OutlineInputBorder(),
          ),
        ),
        SizedBox(height: 20),
        ElevatedButton(
          onPressed: () {
            // 显示输入框中的值
            showDialog(
              context: context,
              builder: (context) => AlertDialog(
                title: Text('输入值'),
                content: Text(_textController.text),
                actions: [
                  TextButton(
                    onPressed: () => Navigator.pop(context),
                    child: Text('关闭'),
                  ),
                ],
              ),
            );
          },
          child: Text('显示输入值'),
        ),
      ],
    );
  }
}

示例效果

运行上述代码后,您将看到一个带有格式化输入框的页面。用户可以输入金额,输入框会自动格式化为带逗号分隔的货币格式。点击“显示输入值”按钮后,弹出对话框显示当前输入框中的值。

注意事项

  1. 确保在 pubspec.yaml 文件中添加依赖:
    dependencies:
      uiv_formater_collection: ^版本号
    

更多关于Flutter格式化工具集合插件uiv_formater_collection的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter格式化工具集合插件uiv_formater_collection的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


uiv_formater_collection 是一个 Flutter 插件,旨在提供一系列常用的格式化工具,帮助开发者更轻松地处理字符串、日期、数字等数据的格式化。以下是如何使用 uiv_formater_collection 插件的详细步骤:

1. 添加依赖

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

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

然后运行 flutter pub get 来安装依赖。

2. 导入包

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

import 'package:uiv_formater_collection/uiv_formater_collection.dart';

3. 使用格式化工具

uiv_formater_collection 提供了多种格式化工具,以下是一些常见的使用示例:

3.1 字符串格式化

String formattedString = StringFormater.capitalizeFirstLetter("hello world");
print(formattedString); // 输出: Hello world

3.2 日期格式化

DateTime now = DateTime.now();
String formattedDate = DateFormater.format(now, "yyyy-MM-dd");
print(formattedDate); // 输出: 2023-10-05

3.3 数字格式化

String formattedNumber = NumberFormater.format(1234567.89, "###,###.##");
print(formattedNumber); // 输出: 1,234,567.89

3.4 货币格式化

String formattedCurrency = CurrencyFormater.format(1234.56, "USD");
print(formattedCurrency); // 输出: $1,234.56

3.5 电话号码格式化

String formattedPhoneNumber = PhoneNumberFormater.format("1234567890", "(###) ###-####");
print(formattedPhoneNumber); // 输出: (123) 456-7890

4. 自定义格式化

uiv_formater_collection 还允许你自定义格式化规则。例如,你可以创建一个自定义的日期格式化器:

String customFormattedDate = DateFormater.format(now, "dd/MM/yyyy HH:mm:ss");
print(customFormattedDate); // 输出: 05/10/2023 14:30:45

5. 其他功能

uiv_formater_collection 还提供了其他一些有用的格式化工具,例如:

  • Email 格式化:验证和格式化电子邮件地址。
  • URL 格式化:验证和格式化 URL。
  • JSON 格式化:美化 JSON 字符串。

6. 示例代码

以下是一个完整的示例代码,展示了如何使用 uiv_formater_collection 插件:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('uiv_formater_collection Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text(StringFormater.capitalizeFirstLetter("hello world")),
              Text(DateFormater.format(DateTime.now(), "yyyy-MM-dd")),
              Text(NumberFormater.format(1234567.89, "###,###.##")),
              Text(CurrencyFormater.format(1234.56, "USD")),
              Text(PhoneNumberFormater.format("1234567890", "(###) ###-####")),
            ],
          ),
        ),
      ),
    );
  }
}
回到顶部