Flutter实用工具集插件k_utils的使用

Flutter实用工具集插件k_utils的使用

k_utils

flutter常用工具类

pubspec.yaml文件中添加以下依赖:

dependencies:
   k_utils: ^0.0.1

初始化工具类:

/// 初始化utils
await XUtils.get.init(debug: kDebugMode);

2、常用的工具类

以下是k_utils提供的常用工具类及其功能:

color_utils

颜色工具类,主要用于将字符串转换为颜色。

示例代码:

import 'package:k_utils/k_utils.dart';

void main() {
  // 将字符串 "#FF5733" 转换为颜色
  final color = ColorUtils.hexToColor("#FF5733");
  print(color); // 输出:Color(0xFF5733)
}

date_utils

日期工具类,用于获取日期时间及各种时间之间的转换。

示例代码:

import 'package:k_utils/k_utils.dart';

void main() {
  // 获取当前时间
  final now = DateUtils.getCurrentDateTime();
  print(now); // 输出类似:2023-10-01 12:00:00

  // 将时间戳转换为日期
  final timestamp = 1696152000;
  final dateTime = DateUtils.timestampToDate(timestamp);
  print(dateTime); // 输出类似:2023-10-01 12:00:00
}

encrypt_utils

加解密工具类,支持MD5加密、Base64加密与解密、异或加解密等。

示例代码:

import 'package:k_utils/k_utils.dart';

void main() {
  // MD5加密
  final md5 = EncryptUtils.md5("hello world");
  print(md5); // 输出:5eb63bbbe01eeed093cb22bb8f5acdc3

  // Base64加密
  final base64Encoded = EncryptUtils.base64Encode("hello world");
  print(base64Encoded); // 输出:aGVsbG8gd29ybGQ=

  // Base64解密
  final base64Decoded = EncryptUtils.base64Decode(base64Encoded);
  print(base64Decoded); // 输出:hello world
}

json_utils

JSON转换工具类,用于List、Map、对象与JSON之间的相互转换。

示例代码:

import 'package:k_utils/k_utils.dart';

void main() {
  // JSON字符串转Map
  final jsonString = '{"name": "John", "age": 30}';
  final map = JsonUtils.jsonToMap(jsonString);
  print(map); // 输出:{"name": "John", "age": 30}

  // Map转JSON字符串
  final jsonStr = JsonUtils.mapToJson(map);
  print(jsonStr); // 输出:{"name":"John","age":30}
}

money_utils

货币符号工具类,用于货币的转换和格式化。

示例代码:

import 'package:k_utils/k_utils.dart';

void main() {
  // 格式化金额
  final formatted = MoneyUtils.formatMoney(1234567.89);
  print(formatted); // 输出:$1,234,567.89
}

num_utils

Num格式工具类,用于数字的相关处理和转换。

示例代码:

import 'package:k_utils/k_utils.dart';

void main() {
  // 格式化数字
  final formattedNumber = NumUtils.formatNumber(1234567);
  print(formattedNumber); // 输出:1,234,567
}

random_utils

随机数工具类,用于生成随机字符串和数字。

示例代码:

import 'package:k_utils/k_utils.dart';

void main() {
  // 生成随机字符串
  final randomString = RandomUtils.randomString(length: 10);
  print(randomString); // 输出类似:abc123xyz!

  // 生成随机数字
  final randomNumber = RandomUtils.randomNumber(min: 1, max: 100);
  print(randomNumber); // 输出:随机数字(例如:42)
}

regex_utils

正则表达式工具类,用于验证电话、身份证、邮箱、IP地址等。

示例代码:

import 'package:k_utils/k_utils.dart';

void main() {
  // 验证手机号码
  final phone = "12345678901";
  final isValidPhone = RegexUtils.isPhoneNumber(phone);
  print(isValidPhone); // 输出:true 或 false

  // 验证邮箱
  final email = "example@example.com";
  final isValidEmail = RegexUtils.isEmail(email);
  print(isValidEmail); // 输出:true 或 false
}

sp_utils

SP存储工具类,用于轻量级数据的存储。

示例代码:

import 'package:k_utils/k_utils.dart';

void main() async {
  // 保存数据
  await SpUtils.save("username", "JohnDoe");

  // 获取数据
  final username = await SpUtils.getString("username");
  print(username); // 输出:JohnDoe

  // 删除数据
  await SpUtils.remove("username");
}

status_bar_utils

状态栏工具类,用于控制状态栏的颜色。

示例代码:

import 'package:k_utils/k_utils.dart';

void main() async {
  // 设置状态栏颜色
  await StatusBarUtils.setStatusBarColor(Colors.blue);
}

system_utils

系统工具类,用于复制文本到剪贴板、弹出软键盘、关闭软键盘等。

示例代码:

import 'package:k_utils/k_utils.dart';

void main() async {
  // 复制文本到剪贴板
  await SystemUtils.copyToClipboard("Hello World");
  print("已复制到剪贴板");

  // 弹出软键盘
  await SystemUtils.showSoftKeyboard();

  // 关闭软键盘
  await SystemUtils.hideSoftKeyboard();
}

text_utils

文本工具类,用于处理字符串的缩略。

示例代码:

import 'package:k_utils/k_utils.dart';

void main() {
  // 字符串缩略
  final longText = "This is a very long text that needs to be shortened.";
  final shortened = TextUtils.ellipsis(text: longText, maxLength: 20);
  print(shortened); // 输出:This is a very long...
}

timer_utils

定时器和倒计时器工具类,用于设置倒计时总时间和间隔时间。

示例代码:

import 'package:k_utils/k_utils.dart';

void main() {
  // 倒计时器
  TimerUtils.countdown(
    totalSeconds: 10,
    interval: 1,
    onTick: (seconds) {
      print("倒计时: $seconds 秒");
    },
    onComplete: () {
      print("倒计时结束!");
    },
  );
}

xlog

日志输出工具类,用于打印调试信息。

示例代码:

import 'package:k_utils/k_utils.dart';

void main() {
  // 打印日志
  XLog.d("调试信息");
  XLog.e("错误信息");
}

3、扩展函数

k_double

Double扩展函数,用于千米和米的转换。

示例代码:

import 'package:k_utils/k_utils.dart';

void main() {
  // 千米转米
  final meters = 1.5.kmToMeters;
  print(meters); // 输出:1500.0

  // 米转千米
  final kilometers = 1500.metersToKm;
  print(kilometers); // 输出:1.5
}

k_object

Object扩展函数,用于判断对象是否为空或非空。

示例代码:

import 'package:k_utils/k_utils.dart';

void main() {
  final value = "Hello";

  // 判断对象是否为空
  if (value.isNotNull) {
    print("对象不为空");
  } else {
    print("对象为空");
  }
}

k_widget

Widget扩展函数,用于实现点击事件、点击防抖、双击退出等功能。

示例代码:

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

class MyWidget extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {
        print("单击事件");
      },
      onDoubleClick: () {
        print("双击事件");
      },
      child: Container(
        width: 200,
        height: 200,
        color: Colors.blue,
        child: Center(
          child: Text("点击我"),
        ),
      ),
    );
  }
}
1 回复

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


k_utils 是一个 Flutter 实用工具集插件,它提供了许多常用的工具函数和扩展方法,可以帮助开发者更高效地编写 Flutter 应用程序。以下是一些 k_utils 插件的常见用法和功能。

安装

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

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

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

常用功能

1. 字符串扩展

k_utils 提供了一些字符串的扩展方法,例如:

import 'package:k_utils/k_utils.dart';

void main() {
  String str = "Hello, World!";
  
  // 判断字符串是否为空或仅包含空格
  print(str.isBlank); // false

  // 将字符串转换为驼峰命名
  print(str.toCamelCase); // helloWorld

  // 将字符串转换为蛇形命名
  print(str.toSnakeCase); // hello_world
}

2. 日期时间扩展

k_utils 还提供了一些日期时间的扩展方法:

import 'package:k_utils/k_utils.dart';

void main() {
  DateTime now = DateTime.now();

  // 格式化日期时间
  print(now.format("yyyy-MM-dd HH:mm:ss")); // 例如:2023-10-05 12:34:56

  // 获取日期的开始时间(00:00:00)
  print(now.startOfDay);

  // 获取日期的结束时间(23:59:59)
  print(now.endOfDay);
}

3. 集合扩展

k_utils 提供了一些集合的扩展方法:

import 'package:k_utils/k_utils.dart';

void main() {
  List<int> numbers = [1, 2, 3, 4, 5];

  // 随机打乱列表
  numbers.shuffle();
  print(numbers); // 例如:[3, 1, 5, 2, 4]

  // 获取列表的第一个元素或默认值
  print(numbers.firstOrNull); // 3
  print(numbers.firstOrDefault(defaultValue: 0)); // 3

  // 过滤列表中的空值
  List<int?> nullableNumbers = [1, null, 2, null, 3];
  print(nullableNumbers.whereNotNull()); // [1, 2, 3]
}

4. 设备信息

k_utils 提供了获取设备信息的功能:

import 'package:k_utils/k_utils.dart';

void main() async {
  // 获取设备ID
  String deviceId = await KUtils.deviceId();
  print(deviceId);

  // 获取设备信息
  DeviceInfo deviceInfo = await KUtils.deviceInfo();
  print(deviceInfo.model); // 设备型号
  print(deviceInfo.version); // 系统版本
}

5. 网络检测

k_utils 提供了网络状态检测的功能:

import 'package:k_utils/k_utils.dart';

void main() async {
  // 检查网络连接状态
  bool isConnected = await KUtils.isNetworkConnected();
  print(isConnected); // true or false

  // 监听网络状态变化
  KUtils.onNetworkChanged.listen((isConnected) {
    print("Network connected: $isConnected");
  });
}

6. 文件操作

k_utils 提供了一些文件操作的实用方法:

import 'package:k_utils/k_utils.dart';

void main() async {
  // 读取文件内容
  String content = await KUtils.readFile("path/to/file.txt");
  print(content);

  // 写入文件内容
  await KUtils.writeFile("path/to/file.txt", "Hello, World!");

  // 删除文件
  await KUtils.deleteFile("path/to/file.txt");
}

7. 其他实用工具

k_utils 还提供了一些其他实用工具,例如:

import 'package:k_utils/k_utils.dart';

void main() {
  // 生成随机字符串
  String randomString = KUtils.randomString(length: 10);
  print(randomString);

  // 生成随机数字
  int randomNumber = KUtils.randomNumber(min: 1, max: 100);
  print(randomNumber);

  // 将 JSON 字符串转换为 Map
  Map<String, dynamic> jsonMap = KUtils.jsonDecode('{"key": "value"}');
  print(jsonMap);

  // 将 Map 转换为 JSON 字符串
  String jsonString = KUtils.jsonEncode({"key": "value"});
  print(jsonString);
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!