sc_flutter_component_library 0.1.5
sc_flutter_component_library: ^0.1.5 copied to clipboard
A Flutter component library with rich text input widgets supporting multiple input types and automatic format validation.
0.1.5 - 2025-01-08 #
Fixed #
-
CustomPaginationWidget生命周期管理: 修复了initialPage参数不更新的问题
- 添加
didUpdateWidget()方法来处理参数变化 - 修复了当父组件更新
initialPage时分页组件不响应的问题 - 改进了
pageSize和totalRecords参数变化的处理 - 增强了页面边界验证,确保当前页始终在有效范围内
- 优化了
_calculateTotalPages()方法,添加了边界情况处理 - 改进了
_goToPage()方法,使用clamp()确保页码在有效范围内
- 添加
-
CustomPaginationWidget测试覆盖: 新增了全面的测试用例
- 测试
initialPage参数更新的响应性 - 测试
totalRecords变化时的页面调整 - 测试
pageSize变化时的重新计算 - 验证组件在各种参数变化场景下的正确行为
- 测试
Technical Details #
- 生命周期管理: 正确实现了Flutter组件的生命周期方法
- 参数响应性: 组件现在能正确响应所有外部参数的变化
- 边界处理: 改进了边界情况的处理,防止无效页码状态
- 测试质量: 新增的测试确保了组件在各种使用场景下的稳定性
0.1.4 - 2025-08-04 #
Added #
- ButtonWidget组件集成: 完整的按钮组件库及示例演示
- 在示例应用中新增ButtonWidget演示标签页
- TabController长度从10更新为11,支持ButtonWidget展示
- 添加智能按钮图标(Icons.smart_button)和"ButtonWidget"标签
- 完善组件库功能演示的完整性和用户体验
0.1.3 - 2025-08-04 #
-
HResizableContainerWidget组件: 水平可调整大小的容器组件
- 支持拖动调整宽度,智能计算宽度限制
- 动态宽度约束计算,适应不同屏幕尺寸
- 可配置最小/最大宽度比例和预留空间
- 支持左侧或右侧分割线位置
- 可选动画效果和性能优化模式
- 双击恢复默认宽度功能
- 自定义分割线样式和颜色配置
-
VResizableContainerWidget组件: 垂直可调整大小的容器组件
- 支持拖动调整高度,智能计算高度限制
- 动态高度约束计算,考虑键盘和系统UI
- 可配置最小/最大高度比例和预留空间
- 流畅的拖动交互和视觉反馈
- 可选动画效果和性能优化模式
- 双击恢复默认高度功能
- 自定义分割线样式和颜色配置
-
Container模块增强:
- 更新container模块导出配置
- 完善可调整大小容器的功能覆盖
- 提供统一的容器组件API设计
Fixed #
- VResizableContainerWidget拖拽方向修复: 修正了拖拽方向逻辑
- 向下拖拽现在正确地增加高度(符合用户直觉)
- 向上拖拽现在正确地减少高度(符合用户直觉)
- 修复了setState在build过程中被调用的问题
- 修复了RenderFlex布局溢出问题
- 替换弃用的withOpacity方法为withValues
Technical Details #
- 智能约束计算: 动态计算宽度/高度限制,适应不同设备和屏幕方向
- 性能优化: 可选动画模式,拖动时直接更新避免性能损耗
- 用户体验: 鼠标悬停指示器、拖动状态反馈、双击重置功能
- 可定制性: 丰富的样式配置选项,支持自定义颜色和尺寸
- 响应式设计: 自动适应屏幕尺寸变化和系统UI变化
0.1.2 2025-01-XX #
Added #
-
FastContextMenu组件: 快速响应的现代化右键菜单组件
- 支持自定义菜单项配置(标题、图标、回调函数)
- 智能颜色配置,根据菜单项类型自动应用语义化颜色
- 流畅的悬停动画效果和交互反馈
- 智能位置计算,确保菜单不超出屏幕边界
- 支持菜单项启用/禁用状态
- 兼容原有PopupContextMenu接口
- 无外部依赖,使用原生Flutter组件实现
-
Menu模块导出和集成:
- 新增
src/menu/menu.dart导出文件 - 在主库导出文件中添加菜单组件导出
- 完善组件库的UI交互功能覆盖
- 新增
Technical Details #
- 组件特性: 支持多种预设菜单项颜色配置(删除、提交、审核、撤销等)
- 性能优化: 使用AnimationController实现流畅的悬停动画效果
- 用户体验: 智能菜单定位和边界检测,防止菜单超出屏幕
- 可定制性: 支持自定义图标颜色、文字颜色和菜单项状态
- 兼容性: 提供PopupContextMenu兼容接口,方便现有代码迁移
0.1.1 - 2025-08-02 #
Added #
-
CustomPaginationWidget组件: 功能完整的分页组件
- 完整的分页导航功能(首页、上一页、下一页、末页)
- 智能页码显示和跳转(最多显示5个页码按钮)
- 总记录数和当前页信息显示
- 可配置的每页显示数量选择器(支持10/20/50/100等选项)
- 可自定义样式和主题色
- 响应式设计,适配不同屏幕尺寸
- 高性能渲染和状态管理
- 支持禁用状态和交互反馈
-
分页组件导出和集成:
- 新增
src/pagination/pagination.dart导出文件 - 在主库导出文件中添加分页组件导出
- 完善组件库的整体功能覆盖
- 新增
-
分页组件示例应用:
- 新增
example/lib/pagination_example.dart完整示例页面 - 模拟数据表格展示分页功能
- 交互式演示页码跳转和每页数量切换
- 包含使用说明和功能介绍
- 在主示例应用中添加分页组件Tab页
- 新增
Changed #
-
示例应用增强:
- 主应用TabController长度从7更新为8,支持新增的分页组件Tab
- 添加分页组件图标和导航标签
- 完善组件功能演示的完整性
-
文档更新:
- README.md中添加CustomPaginationWidget组件介绍
- 更新主要特性列表,包含分页导航功能
- 添加分页组件的快速使用示例和详细说明
- 更新API文档,包含CustomPaginationWidget的完整参数说明
- 更新项目结构图,显示分页组件目录
Technical Details #
- 组件特性: 支持1-100000+记录的高效分页处理
- 性能优化: 智能页码范围计算,避免不必要的渲染
- 用户体验: 直观的分页控件和状态反馈
- 可定制性: 支持自定义页面大小选项和样式主题
- 兼容性: 与现有组件库完美集成,保持API一致性
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.0.9 - 2025-08-02 #
Added #
-
TextWidget组件: 丰富的文本显示组件,支持多种预设样式和扩展方法
- 预设样式:title、subtitle、body、caption、error、success、warning
- String扩展方法:
.toTitle()、.toSubtitle()、.toBody()、.toCaption()、.toError()、.toSuccess()、.toWarning() - 支持自定义样式、点击事件、行数限制等功能
- 完整的测试覆盖和示例展示
-
ContainerWidget组件: 高级容器组件,支持丰富的样式和交互功能
- 预设样式:card、button、circle、bordered、gradient
- Widget扩展方法:
.inContainer()、.inCard()、.inButton()、.inCircle()、.inBordered()、.withPadding()、.withMargin()、.withColor() - 支持渐变背景、阴影效果、边框样式、点击事件等
- 智能装饰计算和clipBehavior处理
- 完整的测试覆盖和示例展示
-
组件导出结构优化:
- 独立的组件导出文件:
text/text.dart、container/container.dart、date/date.dart、filter/filter.dart - 完善的主库导出配置
- 移动端和桌面端组件分类
- 独立的组件导出文件:
-
示例应用增强:
- 在demo_page.dart中新增TextWidget和ContainerWidget的详细使用示例
- 交互式演示,包含点击反馈和状态展示
- 涵盖所有组件功能的完整示例
Changed #
-
环境要求更新:
- 升级Flutter版本要求至3.32.4 (Dart 3.8.1)
- 更新syncfusion_flutter_datepicker至30.1.42版本
- 启用material design支持以兼容syncfusion组件
-
API优化:
- 恢复使用
withValues(alpha: x)方法替代已弃用的withOpacity() - 优化ContainerWidget的装饰计算逻辑
- 改进组件的类型安全和参数验证
- 恢复使用
-
项目结构重组:
- 重新组织lib/src目录结构
- 完善组件分类和导出配置
- 更新文档结构和组件说明
Fixed #
- 修复ContainerWidget的clipBehavior错误,当没有装饰时返回空的BoxDecoration
- 解决syncfusion_flutter_datepicker版本兼容性问题
- 修复withValues方法的API兼容性问题
- 解决material design图标支持问题
Technical Details #
- 测试覆盖: 32个测试用例全部通过,100%测试覆盖率
- 代码质量: 通过Flutter analyze检查,仅剩无关紧要的info级别提示
- 兼容性: 支持所有Flutter平台(Android、iOS、Web、Windows、macOS、Linux)
- 依赖管理: 使用最新稳定版本的依赖包
0.0.8 - 2025-08-01 #
0.0.7 - 2025-08-01 #
0.0.6 - 2024-08-01 #
0.0.5 - 2024-08-01 #
0.0.4 - 2024-08-01 #
0.0.3 - 2024-08-01 #
Added #
- FilterSearchWidget component with comprehensive search functionality
- Generic type support for any data type
- Configurable search behavior (delay, minimum length, custom filters)
- Custom result display with flexible item builders
- Selection state management
- Debounced search to prevent excessive operations
- Clean implementation with no external dependencies
- FilterSearchConfig class for customizing search behavior and appearance
- FilterSearchItem generic data class for search results with selection state
- Complete documentation for FilterSearchWidget in doc/filter_search_widget.md
- Updated README.md with FilterSearchWidget usage examples and features
- Updated main library export to include FilterSearchWidget
Changed #
- Moved documentation from docs/ to doc/ directory to follow Pub layout conventions
- Updated example functionality list to include search demonstrations
Technical Details #
- Supports Flutter SDK 3.8.1+
- Implements generic types for type safety
- Includes search delay and minimum length configuration
- Provides custom filter and item builder options
- Maintains compatibility with existing library components
0.0.2 - 2024-07-31 #
0.0.1 - 2024-07-31 #
Added #
- Initial release of SC Flutter Component Library
- TextFieldWidget component with multiple input types support
- text: 普通文本输入
- weight: 重量输入(小数点后3位限制)
- price: 单价输入(小数点后4位限制)
- amount: 金额输入(小数点后2位限制)
- quantity: 数量输入(仅整数)
- QuickFilterTextFieldWithClearWidget component with clear button functionality
- Automatic input validation and formatting
- Customizable styles and dimensions
- Focus management and callback events
- Enable/disable state control
- Prefix and suffix icon support
- Comprehensive example application demonstrating all features
- Complete documentation and API reference
- Multi-language support (Chinese)
Features #
- 🎯 Multiple input type support
- ✅ Automatic input format validation and restriction
- 🎨 Customizable styles and dimensions
- 🔧 Prefix and suffix icon support
- 📱 Focus management and callback events
- 🔄 Enable/disable state control
- 🗑️ Smart clear button (shows when content exists)
- ⚡ One-click clear functionality
- 📚 Comprehensive example application
- 📖 Complete documentation
Documentation #
- Added comprehensive README.md with usage examples
- Added example project with detailed demonstrations
- Added API documentation with parameter tables
- Added development guidelines and contribution instructions