Flutter实用工具集合插件utils_plus的使用
Flutter实用工具集合插件utils_plus的使用
utils_plus
是一个Flutter插件,提供了一系列常用的Dart和Flutter类型的扩展方法。它旨在通过提供便捷的方法和实用工具来简化并增强你的开发体验。
功能特性
utils_plus
包含了以下类型的扩展方法:
- String:字符串操作
- num:数字操作
- int:整数操作
- List:列表操作
- DateTime:日期时间操作
- Enum:枚举操作
入门指南
要使用 utils_plus
插件,首先需要在 pubspec.yaml
文件中添加依赖:
dependencies:
utils_plus: ^0.0.4
使用示例
下面是一个完整的示例代码,展示了如何使用 utils_plus
插件中的各种扩展方法。这个示例创建了一个简单的Flutter应用,展示了不同类型的扩展方法及其用法。
import 'package:flutter/material.dart';
import 'package:utils_plus/utils_plus.dart';
enum UserType {
admin,
superAdmin,
normal;
}
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Utils Examples',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({
super.key,
});
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final userType = UserType.superAdmin;
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(
"all utils".toCapitalizeEachWord, // 将字符串每个单词首字母大写
),
),
body: ListView(
padding: const EdgeInsets.symmetric(horizontal: 23, vertical: 0),
children: [
TableWithHeader(
headerTitle: "String",
datas: [
DataModel(name: "removeLast", input: "qwer"), // 移除最后一个字符
DataModel(name: "toCapitalizeFirst", input: "hello"), // 首字母大写
DataModel(name: "toCapitalizeEachWord", input: "capitalize each word"), // 每个单词首字母大写
DataModel(name: "wordToSentence", input: "appleBallCat"), // 将驼峰命名转换为句子
DataModel(name: "formatEmailToStar", input: "test@gmail.com"), // 隐藏邮箱部分字符
DataModel(name: "getFirstName", input: "John Doe"), // 获取名字
DataModel(name: "getLastName", input: "John Doe"), // 获取姓氏
DataModel(name: "toOneWord", input: "Hello World"), // 转换为单个单词
DataModel(name: "extention", input: "apple.txt"), // 获取文件扩展名
DataModel(name: "fileName", input: "apple/ball.txt"), // 获取文件名
DataModel(name: "isPdf", input: "test.pdf"), // 判断是否为PDF文件
DataModel(name: "isImage", input: "image.jpg"), // 判断是否为图片文件
DataModel(name: "isNotEmptyOrNull", input: ""), // 判断字符串是否非空且非null
DataModel(name: "emoji", input: "NP"), // 将国家代码转换为国旗表情
],
),
const SizedBox(height: 20),
TableWithHeader(
headerTitle: "Date Format",
datas: [
DataModel(
name: "isSameDate",
input: DateTime.now(), // 判断两个日期是否相同
inputString: "DateTime.now()",
),
DataModel(
name: "toFormattedString",
input: DateTime.now(), // 格式化日期为字符串
inputString: "DateTime.now()",
),
DataModel(
name: "getDurationName",
input: DateTime.now(), // 获取时间段的名称
inputString: "DateTime.now()",
),
DataModel(
name: "getRelated",
input: DateTime.now(), // 获取与当前日期的相关描述
inputString: "DateTime.now()",
),
],
),
const SizedBox(height: 20),
TableWithHeader(
headerTitle: "Enum",
datas: [
DataModel(
name: "toFormattedString",
input: userType, // 将枚举值格式化为字符串
inputString: "$userType",
),
],
),
const SizedBox(height: 20),
TableWithHeader(
headerTitle: "Numbers",
datas: [
DataModel(
name: "toNonZero",
input: 0, // 将0转换为1
inputString: "0",
),
DataModel(
name: "formatTime",
input: 404, // 格式化时间为秒
inputString: "404",
),
DataModel(
name: "formatTimeToHrMinSec",
input: 404, // 格式化时间为小时、分钟、秒
inputString: "404",
),
DataModel(
name: "formatTimeToHrMin",
input: 404, // 格式化时间为小时、分钟
inputString: "404",
),
],
),
const SizedBox(height: 40),
],
),
);
}
}
更多关于Flutter实用工具集合插件utils_plus的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter实用工具集合插件utils_plus的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个关于如何使用Flutter实用工具集合插件 utils_plus
的示例代码案例。这个插件提供了一系列实用的工具函数,可以简化开发过程。以下是一个简单的示例,展示如何使用其中的一些功能,比如设备信息获取、屏幕尺寸获取、颜色转换等。
首先,确保在你的 pubspec.yaml
文件中添加 utils_plus
依赖:
dependencies:
flutter:
sdk: flutter
utils_plus: ^x.y.z # 替换为最新版本号
然后运行 flutter pub get
来获取依赖。
示例代码
import 'package:flutter/material.dart';
import 'package:utils_plus/utils_plus.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Utils Plus Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
String _deviceInfo = '';
String _screenSize = '';
Color _convertedColor = Colors.transparent;
@override
void initState() {
super.initState();
_getDeviceInfo();
_getScreenSize();
}
void _getDeviceInfo() async {
DeviceInfo deviceInfo = await DeviceUtils.info;
setState(() {
_deviceInfo = 'Brand: ${deviceInfo.brand}\n'
'Model: ${deviceInfo.model}\n'
'System Version: ${deviceInfo.systemVersion}';
});
}
void _getScreenSize() {
Size screenSize = ScreenUtils.screenSize;
setState(() {
_screenSize = 'Width: ${screenSize.width.toInt()}\n'
'Height: ${screenSize.height.toInt()}';
});
}
void _convertColor() {
int hexColor = ColorUtils.stringToColor('#FF5733');
setState(() {
_convertedColor = Color(hexColor);
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Utils Plus Demo'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text('Device Info:', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold)),
SizedBox(height: 8),
Text(_deviceInfo, style: TextStyle(fontSize: 16)),
SizedBox(height: 24),
Text('Screen Size:', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold)),
SizedBox(height: 8),
Text(_screenSize, style: TextStyle(fontSize: 16)),
SizedBox(height: 24),
ElevatedButton(
onPressed: _convertColor,
child: Text('Convert Color'),
),
SizedBox(height: 16),
Container(
width: 100,
height: 100,
color: _convertedColor,
child: Center(child: Text('Converted Color', style: TextStyle(color: Colors.white))),
),
],
),
),
);
}
}
代码说明
-
设备信息获取:
- 使用
DeviceUtils.info
获取设备信息,并显示在屏幕上。
- 使用
-
屏幕尺寸获取:
- 使用
ScreenUtils.screenSize
获取屏幕尺寸,并显示在屏幕上。
- 使用
-
颜色转换:
- 使用
ColorUtils.stringToColor
将十六进制颜色字符串转换为Color
对象,并显示在屏幕上。
- 使用
这个示例展示了如何使用 utils_plus
插件中的一些功能。你可以根据需要进一步探索和使用该插件提供的其他工具函数。