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("点击我"),
),
),
);
}
}
更多关于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);
}