tools_box 0.2.0
tools_box: ^0.2.0 copied to clipboard
A Flutter utility toolkit with string/date formatting, widget extensions, validation tools, platform detection, list/number operations, color utilities, and Android app management.
import 'package:flutter/material.dart';
import 'pages/string_demo_page.dart';
import 'pages/date_demo_page.dart';
import 'pages/validation_demo_page.dart';
import 'pages/widget_extensions_demo_page.dart';
import 'pages/buildcontext_demo_page.dart';
import 'pages/list_demo_page.dart';
import 'pages/num_demo_page.dart';
import 'pages/color_demo_page.dart';
import 'pages/platform_demo_page.dart';
import 'pages/app_utils_demo_page.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Tools Box Demo',
debugShowCheckedModeBanner: false,
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue),
useMaterial3: true,
),
home: const DemoHomePage(),
);
}
}
class _CategoryItem {
final String title;
final String subtitle;
final IconData icon;
final WidgetBuilder builder;
const _CategoryItem({
required this.title,
required this.subtitle,
required this.icon,
required this.builder,
});
}
class DemoHomePage extends StatelessWidget {
const DemoHomePage({super.key});
static final List<_CategoryItem> _categories = [
_CategoryItem(
title: '字符串工具',
subtitle: 'StringUtils - 字符串扩展方法',
icon: Icons.text_fields,
builder: (_) => const StringDemoPage(),
),
_CategoryItem(
title: '日期工具',
subtitle: 'DateUtils - 日期格式化与计算',
icon: Icons.calendar_today,
builder: (_) => const DateDemoPage(),
),
_CategoryItem(
title: '验证工具',
subtitle: 'ValidationUtils - 数据校验',
icon: Icons.verified_user,
builder: (_) => const ValidationDemoPage(),
),
_CategoryItem(
title: 'Widget 扩展',
subtitle: 'WidgetExtensions - Widget 链式调用',
icon: Icons.widgets,
builder: (_) => const WidgetExtensionsDemoPage(),
),
_CategoryItem(
title: 'BuildContext 扩展',
subtitle: 'BuildContextExtensions - 上下文工具',
icon: Icons.smart_display,
builder: (_) => const BuildContextDemoPage(),
),
_CategoryItem(
title: '列表工具',
subtitle: 'ListUtils - 列表操作扩展',
icon: Icons.list,
builder: (_) => const ListDemoPage(),
),
_CategoryItem(
title: '数字工具',
subtitle: 'NumUtils - 数字格式化与运算',
icon: Icons.functions,
builder: (_) => const NumDemoPage(),
),
_CategoryItem(
title: '颜色工具',
subtitle: 'ColorUtils - 颜色处理与转换',
icon: Icons.palette,
builder: (_) => const ColorDemoPage(),
),
_CategoryItem(
title: '平台工具',
subtitle: 'PlatformUtils - 平台检测与环境信息',
icon: Icons.devices,
builder: (_) => const PlatformDemoPage(),
),
_CategoryItem(
title: 'App 工具',
subtitle: 'AppUtils - 应用管理与信息获取 (Android)',
icon: Icons.android,
builder: (_) => const AppUtilsDemoPage(),
),
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Tools Box 工具包演示'),
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
),
body: ListView.builder(
padding: const EdgeInsets.all(8),
itemCount: _categories.length,
itemBuilder: (context, index) {
final item = _categories[index];
return Card(
margin: const EdgeInsets.symmetric(vertical: 4),
child: ListTile(
leading: CircleAvatar(
backgroundColor: Theme.of(context).colorScheme.primaryContainer,
child: Icon(item.icon, color: Theme.of(context).colorScheme.primary),
),
title: Text(item.title, style: const TextStyle(fontWeight: FontWeight.bold)),
subtitle: Text(item.subtitle, style: TextStyle(fontSize: 12, color: Colors.grey[600])),
trailing: const Icon(Icons.chevron_right),
onTap: () => Navigator.push(
context,
MaterialPageRoute(builder: item.builder),
),
),
);
},
),
);
}
}