HZY Normal Tool
一个为 Flutter 开发者提供的综合性工具包,包含常用的 UI 组件、工具类、抽象类和配置文件,帮助开发者快速构建高质量的 Flutter 应用。
✨ 特性
- 🎨 丰富的 UI 组件 - 提供常用的按钮、列表项、对话框等组件
- 🛠️ 实用工具类 - 包含页面状态管理、路由工具等实用功能
- 🏗️ 抽象基类 - 提供生命周期管理、主题配置等抽象类
- 🎯 统一配置 - 预定义的颜色、文本样式和页面状态
- 📱 高度可定制 - 支持自定义样式和行为
- 🚀 开箱即用 - 简单易用的 API 设计
📦 安装
在你的 pubspec.yaml 文件中添加依赖:
dependencies:
hzy_normal_tool: ^0.0.3
或者使用 Git 仓库:
dependencies:
hzy_normal_tool:
git:
url: https://gitee.com/tengteng_fan/hzy_normal_tool.git
然后运行:
flutter pub get
🚀 快速开始
import 'package:hzy_normal_tool/hzy_normal_tool.dart';
// 使用预定义的颜色
Color primaryColor = HzyNormalColors.primaryColor;
// 创建通用列表项
Widget listItem = createNormalItemWidget(
title: '设置',
message: '应用设置',
onTap: () {
// 处理点击事件
},
);
// 显示弹窗
showPopDiaLogWidget(
context: context,
title: '提示',
content: '这是一个提示消息',
);
📁 项目结构
lib/
├── hzy_normal_abstract/ # 抽象类和 Mixin
│ ├── hzy_abs_attribute.dart
│ ├── hzy_appbar_mixin.dart
│ ├── hzy_body_mixin.dart
│ ├── hzy_layout_mixin.dart
│ ├── hzy_normal_launch_abs.dart
│ ├── hzy_normal_life_cycle_abs.dart
│ ├── hzy_normal_theme_abstract.dart
│ └── hzy_scaffol_mixin.dart
├── hzy_normal_config/ # 基础配置
│ ├── hzy_normal_colors.dart
│ ├── hzy_text_style.dart
│ └── page_state.dart
├── hzy_normal_tools/ # 工具类
│ ├── hzy_normal_tools.dart
│ └── hzy_router_tools.dart
├── hzy_normal_widgets/ # UI 组件
│ ├── hzy_appbar_generator.dart
│ ├── hzy_btn_widget.dart
│ ├── hzy_normal_item_widget.dart
│ ├── hzy_normal_widagets.dart
│ ├── hzy_place_holder_widget.dart
│ ├── hzy_pop_dia_log_widget.dart
│ ├── hzy_pop_select_image_widget.dart
│ └── hzy_sure_canner_btn_widget.dart
└── hzy_normal_tool.dart # 主入口文件
🎯 主要功能
UI 组件
通用列表项
// 创建带箭头的列表项
Widget item = createNormalItemWidget(
title: '个人信息',
message: '查看和编辑个人信息',
showNext: true,
onTap: () {
// 导航到个人信息页面
},
);
按钮组件
// 确认取消按钮组
Widget buttons = HzySureCancelBtnWidget(
onSurePressed: () {
// 确认操作
},
onCancelPressed: () {
// 取消操作
},
);
弹窗组件
// 显示确认对话框
showPopDiaLogWidget(
context: context,
title: '删除确认',
content: '确定要删除这个项目吗?',
onConfirm: () {
// 执行删除操作
},
);
工具类
页面状态管理
// 使用页面状态枚举
PageState currentState = PageState.loading;
// 根据状态显示不同UI
Widget buildContent() {
switch (currentState) {
case PageState.loading:
return CircularProgressIndicator();
case PageState.success:
return YourContentWidget();
case PageState.error:
return ErrorWidget();
default:
return Container();
}
}
回调函数类型
// 使用预定义的回调类型
IndexTapCallback onItemTap = (int index) {
print('点击了第 $index 个项目');
};
BooleanCallback onToggle = (bool value) {
print('开关状态: $value');
};
抽象类和 Mixin
生命周期管理
class MyPage extends StatefulWidget with HzyNormalLifeCycleAbs {
@override
void onPageInit() {
// 页面初始化
}
@override
void onPageDispose() {
// 页面销毁
}
}
AppBar Mixin
class MyPage extends StatefulWidget with HzyAppBarMixin {
@override
PreferredSizeWidget buildAppBar() {
return AppBar(
title: Text('我的页面'),
backgroundColor: HzyNormalColors.primaryColor,
);
}
}
配置文件
颜色配置
// 使用预定义颜色
Color primary = HzyNormalColors.primaryColor;
Color background = HzyNormalColors.backgroundColor;
Color text = HzyNormalColors.textColor;
文本样式
// 使用预定义文本样式
TextStyle title = HzyTextStyle.titleStyle;
TextStyle subtitle = HzyTextStyle.subtitleStyle;
TextStyle body = HzyTextStyle.bodyStyle;
📖 API 文档
核心组件
| 组件 | 描述 | 主要参数 |
|---|---|---|
createNormalItemWidget |
创建通用列表项 | title, message, onTap, showNext |
showPopDiaLogWidget |
显示弹窗 | context, title, content, onConfirm |
HzySureCancelBtnWidget |
确认取消按钮组 | onSurePressed, onCancelPressed |
HzyAppBarGenerator |
AppBar 生成器 | title, backgroundColor, actions |
工具类
| 类/方法 | 描述 | 用途 |
|---|---|---|
HzyNormalTools |
通用工具类 | 提供各种实用方法 |
HzyRouterTools |
路由工具类 | 页面导航和路由管理 |
PageState |
页面状态枚举 | 统一页面状态管理 |
🔧 自定义配置
你可以通过继承或实现相关抽象类来自定义组件行为:
// 自定义主题
class MyTheme implements HzyNormalThemeAbstract {
@override
Color get primaryColor => Colors.blue;
@override
TextStyle get titleStyle => TextStyle(
fontSize: 18,
fontWeight: FontWeight.bold,
);
}
// 自定义页面基类
class MyBasePage extends StatefulWidget with HzyScaffolMixin {
@override
Widget buildBody() {
return YourCustomContent();
}
}
🤝 贡献
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建你的特性分支 (
git checkout -b feature/AmazingFeature) - 提交你的修改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开一个 Pull Request
📄 许可证
本项目采用 BSD 3-Clause 许可证 - 查看 LICENSE 文件了解详情。
🔗 相关链接
📞 联系方式
如果你有任何问题或建议,请通过以下方式联系我们:
- 提交 Issue
- 发送邮件到:
your-email@example.com
感谢使用 HZY Normal Tool! 🎉
Libraries
- hzy_normal_abstract/hzy_abs_attribute
- hzy_normal_abstract/hzy_appbar_mixin
- hzy_normal_abstract/hzy_body_mixin
- hzy_normal_abstract/hzy_layout_mixin
- hzy_normal_abstract/hzy_normal_abstract_index
- hzy_normal_abstract/hzy_normal_launch_abs
- hzy_normal_abstract/hzy_normal_life_cycle_abs
- hzy_normal_abstract/hzy_normal_theme_abstract
- hzy_normal_abstract/hzy_scaffol_mixin
- hzy_normal_config/hzy_normal_colors
- hzy_normal_config/hzy_normal_config_index
- hzy_normal_config/hzy_text_style
- hzy_normal_config/page_state
- hzy_normal_tool
- hzy_normal_tools/hzy_normal_tools
- hzy_normal_tools/hzy_normal_tools_index
- hzy_normal_tools/hzy_router_tools
- hzy_normal_widgets/common_keep_aliver_wrapper_v
- hzy_normal_widgets/custom_underline_tab_indicator
- hzy_normal_widgets/hzy_appbar_generator
- hzy_normal_widgets/hzy_btn_widget
- hzy_normal_widgets/hzy_normal_item_widget
- hzy_normal_widgets/hzy_normal_widagets
- hzy_normal_widgets/hzy_normal_widgets_index
- hzy_normal_widgets/hzy_place_holder_widget
- hzy_normal_widgets/hzy_pop_dia_log_widget
- hzy_normal_widgets/hzy_pop_select_image_widget
- hzy_normal_widgets/hzy_sure_canner_btn_widget
- hzy_normal_widgets/sliver_header_delegate