xly 0.22.1
xly: ^0.22.1 copied to clipboard
A Test Flutter Package, DO NOT USE IT at present
0.22.1 - 2025-08-31 #
Fixed #
- FloatPanel 停靠偏移修复:修复浮动面板在左右边缘停靠时偏移量不对称的问题
- 修正 dock 偏移量计算公式,从
panelWidth * (panelWidth / 50) / 2简化为panelWidth / 2 - 确保左右停靠时均为严格的"半隐藏"效果,解决右侧"缩进过多"、左侧"缩进过少"的不一致现象
- 保持运行时
.w缩放的一致性,适配不同屏幕密度
- 修正 dock 偏移量计算公式,从
Enhanced #
- FloatPanel 配置扩展:新增多项可选配置参数,提升自定义灵活性
- 新增
borderColor、initialPanelIcon等样式配置选项 - 新增
panelAnimDuration、panelAnimCurve、dockAnimDuration、dockAnimCurve等动画配置 - 所有新增参数均有合理默认值,保持向后兼容
- 更新相关文档和示例代码
- 新增
0.22.0 - 2025-08-30 #
Breaking Changes #
- FloatPanel 系统重构:完全移除旧的
MyFloatBar组件,统一使用新的FloatPanel系统- 移除
appBuilder中使用MyFloatBar的方式 - 新的
FloatPanel通过MyApp.initialize的floatPanel参数直接配置 - 支持智能联动、多选禁用、自定义样式等高级功能
- 移除
Enhanced #
- 文档更新:更新 README.md 中的浮动面板使用说明,移除过时的
MyFloatBar引用 - 示例项目优化:示例项目已完全迁移到新的
FloatPanel系统
Migration Guide #
- 将原有的
appBuilder+MyFloatBar方式替换为floatPanel参数配置 - 详细迁移指南请参考:.doc/float_panel_usage.md
0.21.1 - 2025-08-28 #
Fixed #
- 回退键处理优化:修复
keyToRollBack参数设置的回退键在弹层场景下的行为不一致问题- 全局层面:回退键现在优先调用
Navigator.maybePop()处理可弹栈的层(Dialog、BottomSheet、PopupMenu等) - MyScaffold层面:小屏Drawer模式下回退键优先关闭侧边栏,避免直接触发全局回退/退出逻辑
- 保持原有双击回退键回退/退出的语义,仅在有弹层可关闭时优先消费按键事件
- 解决用户反馈的"汉堡菜单打开时按回退键直接退出应用而非关闭菜单"的问题
- 全局层面:回退键现在优先调用
0.21.0 - 2025-08-28 #
Breaking Changes #
- 移除 navigatorKey 参数:从
MyApp.initialize中移除navigatorKey参数- 内部使用
Get.key作为全局 NavigatorKey,简化用户配置 - 如需访问 NavigatorState,请使用
Get.key.currentState - 如需全局 BuildContext,请使用
Get.context或Get.overlayContext - 对话框请使用
Get.dialog替代原生showDialog
- 内部使用
Enhanced #
- 简化初始化参数:降低心智负担,开箱即用
- 文档更新:添加 navigatorKey 移除的详细说明和迁移指南
0.20.3 - 2025-08-28 #
0.20.2 - 2025-08-28 #
Enhanced #
- MyDialog & MyDialogSheet:新增 barrierDismissible 参数(默认 true),支持按需控制点击遮罩关闭
- MyDialog.show / MyDialog.showIos / 内部 _showDialog 透传该参数
- MyDialogSheet.show 增加同名参数,保持命名与 Flutter 官方一致
- README:补充严格模态用法示例(barrierDismissible: false)并在基础示例中标注默认语义
0.20.1 - 2025-08-28 #
Added #
- 图标生成工具托盘图标自动复制功能:扩展
dart run xly:generate icon命令,自动处理托盘图标一致性- 使用统一的
assets/_auto_tray_icon_gen/文件夹简化资产管理 - 为桌面平台(Windows、macOS、Linux)自动复制应用图标到 Flutter assets
- 自动更新 pubspec.yaml 添加必要的 assets 路径声明
- 确保 MyTray 托盘图标与应用窗口图标完全一致,跨启动方式稳定
- 使用统一的
- MyTray图标解析优化:重构默认图标路径解析逻辑
- 新增
_resolveIconPath()统一解析方法,优先检查_auto_tray_icon_gen文件夹 - 使用 MyPlatform.getAppDirectory 和 getFilePastedFromAssets 确保路径一致性
- 移除对
assets/icons/tray.ico的硬编码兜底,完全基于平台默认图标路径 - 解决 VSCode F5 调试与从应用目录运行时托盘图标不一致的问题
- 新增
Enhanced #
- 工具文档更新:tool/README.md 新增托盘图标自动复制功能说明和 Windows 图标缓存注意事项
- MyTray文档完善:.doc/my_tray_design.md 新增自动图标一致性最佳实践章节和图标缓存问题说明
- README更新:添加托盘图标一致性工作流、自动化优势说明和 Windows 图标缓存提醒
0.20.0 - 2025-08-26 #
Added #
- MyTray托盘点击切换功能:新增toggleOnClick参数,支持托盘左键点击切换显示/隐藏
- 构造参数:bool toggleOnClick = true,控制托盘左键点击行为
- toggleOnClick=false:保持现状(智能停靠下模拟悬停弹出;否则恢复显示并聚焦)
- toggleOnClick=true:切换语义(普通模式hide↔pop切换;智能停靠下隐藏↔无激活显示切换)
- 运行时API:getToggleOnClick()、setToggleOnClick(bool)、toggleToggleOnClick()
- 智能停靠兼容:保持"隐藏→显示不会立即缩回"的既有体验
- MyTray任务栏图标策略控制:新增hideTaskBarIcon参数和运行时API
- 构造参数:bool hideTaskBarIcon = true,控制托盘存在时任务栏图标是否隐藏
- 运行时API:showTaskbarIcon()、hideTaskbarIcon()、getHideTaskBarIcon()
- 全局策略:无论hide()/pop()操作,任务栏图标显示完全由策略决定
- 与智能停靠完全解耦:不影响悬停唤醒、不激活显示等现有行为
Enhanced #
- 示例页面功能扩展:Page9新增托盘功能完整演示区域
- 新增toggleOnClick策略演示:实时显示当前切换开关状态,提供开启、关闭、切换三种操作按钮
- 任务栏图标策略演示:实时显示当前任务栏图标状态(隐藏/显示),提供显示、隐藏、切换三种操作按钮
- 支持手动验证策略切换效果和托盘点击行为变化
0.19.5 - 2025-08-26 [069950e] #
0.19.4 - 2025-08-26 [f751300] #
0.19.3 - 2025-08-25 [89a0ccd] #
Documentation #
- MyLoadingDot组件文档完善:为多点动态加载指示器组件补充完整文档
- 在README.md功能列表中添加MyLoadingDot组件说明
- 在README.md使用示例中添加详细的MyLoadingDot使用代码示例
- 在注意事项中添加MyLoadingDot组件的特性说明和文档链接
- 新增专门的使用指南:
.doc/my_loading_dot_usage_guide.md - 包含四种动画类型详解、性能优化说明、实际应用场景、参数详解、最佳实践等
0.19.2 - 2025-08-25 [252b0fc] #
0.19.1 - 2025-08-25 [a2dea1c] #
0.19.0 - 2025-08-25 [ee290ad] #
Added #
- MyLoadingDot组件:新增多点动态加载指示器,支持多种动画效果
- 支持fade、bounce、scale、wave四种动画类型
- 提供
MyLoadingDot.typing()工厂方法,兼容"正在输入"场景 - 自适应容器宽度,支持响应式尺寸单位
- 可配置点数量、间距、颜色、动画周期等参数
- 内置相位偏移和随机化起始相位,避免多实例同步问题
Enhanced #
- 示例应用完善:新增Page10演示页面,展示MyLoadingDot的各种使用方式
- 包含基础用法、不同动画类型、自定义参数等完整示例
- 优化浮动导航栏的页面标题,提升用户体验
- 更新侧边栏导航,新增LoadingDot演示入口
Documentation #
- 更新README.md:移除已完成的TODO项目(3dot loading widget)
- 完善组件导出:在xly.dart中正确导出MyLoadingDot组件
0.18.1 - 2025-08-24 #
0.18.0 - 2025-08-24 [61b8608] #
Breaking Changes #
- MyTextEditor 下拉位置控制 API 重构:
- 移除
dropdownShowBelow参数(bool) - 移除
dropdownAutoDirection参数(bool) - 新增
showListCandidateBelow参数(bool?,默认 null)null:自动判定方向,基于可用空间决定向上或向下(推荐)true:强制显示在下方false:强制显示在上方
- 移除
Migration Guide #
- 旧代码迁移:
dropdownShowBelow: true→showListCandidateBelow: truedropdownShowBelow: false→showListCandidateBelow: false- 移除所有
dropdownAutoDirection参数(默认 null 即自动)
Documentation #
- 更新
.doc/my_text_editor_usage_guide.md:重写"下拉位置控制"章节,提供三态布尔使用示例 - 更新
README.md:调整 MyTextEditor 示例代码,展示新 API 用法
0.17.5 - 2025-08-19 #
Enhanced #
- 智能托盘隐藏行为优化:改进智能停靠模式下的"隐藏到托盘"交互体验
- 新增
MouseTracker.forceCollapseToHidden()API:支持强制收起到隐藏位同时保留悬停唤醒能力 - 优化
MyTray.hide()在智能停靠模式下的行为:当窗口已展开时,点击"隐藏到托盘"会立即收起到边缘/角落隐藏位,避免鼠标仍在窗口区域时的视觉干扰 - 保持悬停唤醒功能:用户仍可通过鼠标移动到屏幕边缘重新激活窗口
- 新增
Documentation #
- 更新智能托盘相关文档:
- README.md:补充智能收起行为说明
.doc/smart_tray_technical.md:更新技术实现细节.doc/smart_tray_user_guide.md:完善用户体验说明与特别说明
0.17.4 - 2025-08-19 #
Breaking Changes #
- 移除
MyTextEditor.dropdownMaxHeight参数:高度现在仅由maxShowDropDownItems与单项高度共同决定(finalHeight = itemHeight * min(totalOptions, maxShowDropDownItems))。若之前依赖像素级封顶,请通过调小maxShowDropDownItems或减小行高来达到类似效果。
Documentation #
- 更新
.doc/my_text_editor_usage_guide.md:移除dropdownMaxHeight的所有示例与参数说明,新增“参数联动说明”。
0.17.3 - 2025-08-19 [0e909df] #
Breaking Changes #
- 文本编辑器(MyTextEditor)下拉组件行为调整:移除了内部基于“最大可见项数”的滚动估算逻辑,统一改为使用实际可视区域与maxScrollExtent进行对齐滚动,避免滚动抖动与边界错位。
Enhanced #
- 下拉位置控制重构:当 dropdownShowBelow 为 false 时,通过位移统一在输入框上方展示。
- 自动滚动策略优化:选中项若超出可视区,上下对齐滚动以确保完整可见,动画更顺滑(150ms easeOut)。
- 结构清理:去除控制器中未使用的 _maxVisibleItems 字段与相关参数,API 更简洁。
Documentation #
- 智能托盘文档增强:
- 补充“托盘左击(智能停靠隐藏下)仅模拟悬停弹出”的交互语义与示意流程图。
- README 与 .doc/smart_tray_* 文档同步更新使用说明与最佳实践。
0.17.2 - 2025-08-08 [321935b] #
0.17.1 - 2025-08-07 [b014823] #
Enhanced #
- MyTextEditor文档全面完善:大幅提升开发者使用体验和文档质量
- 扩展README.md使用示例:从基础用法扩展为包含多种场景的完整示例集合
- 创建专门使用指南:新增
.doc/my_text_editor_usage_guide.md详细使用指南 - 完整API文档:涵盖所有重要参数、使用场景和最佳实践
- 参数速查表:提供便于开发者快速查找的参数对照表
- 实用示例集合:包含基础用法、下拉建议、自定义样式、控制器管理等完整示例
- 最佳实践指导:提供性能优化建议、常见问题解答和错误处理方案
0.17.0 - 2025-08-07 [7fa3910] #
Enhanced #
- MyTextEditor下拉导航系统全面升级:完善键盘导航和用户交互体验
- 智能键盘导航:支持上下箭头键精确导航,Enter键选择,Escape键关闭
- 鼠标键盘协同:鼠标悬停与键盘导航状态智能同步,无缝切换
- 智能滚动系统:选中项自动滚动到可视区域,支持大量选项的流畅导航
- 防抖动机制:选择选项后智能防止下拉列表闪烁,提升交互流畅度
- 手动关闭记忆:用户主动关闭下拉列表后,输入新内容前不会自动重新打开
Fixed #
- 下拉列表交互问题修复:解决多种边界情况和用户体验问题
- 修复键盘导航时焦点丢失问题,确保导航连续性
- 修复选项选择后下拉列表意外重新打开的问题
- 修复Escape键行为:优先关闭下拉列表,再让编辑器失去焦点
- 修复大量选项时的显示和滚动问题,支持完整选项列表展示
0.16.0 - 2025-08-01 #
Added #
- 智能导航系统:为MyScaffold添加完整的智能导航解决方案
- 自动路由同步:侧边栏选中状态与当前路由自动同步,无论通过什么方式导航
- 简化导航API:只需指定route参数即可自动导航,无需手写onTap回调
- 智能自动滚动:当侧边栏有很多菜单项时,选中项自动滚动到可视区域
- 可配置滚动条:alwaysShowScrollbar参数控制滚动条显示行为
- 可配置自动滚动:autoScrollToSelected参数控制自动滚动功能
Enhanced #
-
MyAdaptiveNavigationItem增强:添加route参数支持自动导航
- 优先使用自定义onTap,如果没有则使用route自动导航
- 完全向后兼容,现有代码无需修改
- 大幅简化用户代码,提升开发效率
-
导航体验优化:移除所有不必要的延迟,提升响应速度
- 即时的界面更新和状态同步
- 优化路由监听机制,100ms高频检查确保及时响应
- 平滑的300ms滚动动画,使用ScreenUtil响应式尺寸计算
Fixed #
- SpinBox组件命名统一:将"自定义编辑框"统一为标准命名
- 修复页面导航按钮使用Get.toNamed而非Get.back,确保精确导航
- 统一所有页面的导航按钮风格,提供一致的用户体验
0.15.0 - 2025-08-01 #
Added #
- MyTray简化配置:在MyApp.initialize中添加tray参数,提供更简洁的配置方式
- 新增tray参数支持,可直接传入MyTray实例进行配置
- 保持向后兼容,传统MyService
- 更新文档和示例,展示新的简化使用方式
Enhanced #
-
MyScaffold响应式单位支持:全面支持ScreenUtil响应式单位
- 所有内部尺寸属性使用.w/.h/.r/.sp响应式单位
- 包括边距、内边距、圆角、容器尺寸、图标大小等
- 菜单项文本和徽章文本支持响应式字体缩放(.sp)
- 提供更好的跨设备适配体验
-
智能停靠状态下功能冲突防护:在智能停靠状态下自动禁用可能冲突的窗口功能
- 双击最大化功能在智能停靠状态下自动禁用,防止破坏停靠布局
- 全屏功能在智能停靠状态下自动禁用,避免状态冲突
- UI按钮智能显示禁用状态和原因,提供友好的用户反馈
- 操作时显示明确提示,告知用户如何恢复功能(先关闭智能停靠)
-
全屏功能支持:新增完整的全屏功能API和UI控制
- 新增
MyApp.isFullScreenEnabled()检查全屏功能可用性 - 新增
MyApp.setFullScreenEnabled()控制全屏功能启用状态 - 新增
MyApp.toggleFullScreen()切换全屏状态 - 全屏功能与智能停靠智能交互,避免功能冲突
- 新增
Changed #
-
命名一致性改进:重命名AdaptiveNavigationItem为MyAdaptiveNavigationItem
- 保持与其他My系列组件的命名一致性
- 更新所有相关文档和示例代码
-
组件命名统一:将SpinBox相关术语统一更新为"自定义编辑框"
- 侧边栏菜单项:'SpinBox' → '自定义编辑框'
- 文档标题:'使用自定义数字输入框' → '使用自定义编辑框'
- 示例代码:所有相关标签和注释统一更新
- 保持与其他菜单项命名风格的一致性
Improved #
- 概念澄清和命名优化:修正全屏和最大化功能的概念混淆
- 重命名
isDoubleClickFullScreenEnabled()→isDoubleClickMaximizeEnabled() - 重命名
setDoubleClickFullScreenEnabled()→setDoubleClickMaximizeEnabled()
- 重命名
0.14.3 - 2025-07-28 #
Changed #
- CHANGELOG的git提交:[1dfae6d]
Enhanced #
- 智能停靠状态下功能冲突防护:在智能停靠状态下自动禁用可能冲突的窗口功能
- 双击最大化功能在智能停靠状态下自动禁用,防止破坏停靠布局
- 全屏功能在智能停靠状态下自动禁用,避免状态冲突
- UI按钮智能显示禁用状态和原因,提供友好的用户反馈
- 操作时显示明确提示,告知用户如何恢复功能(先关闭智能停靠)
Added #
- 全屏功能支持:新增完整的全屏功能API和UI控制
- 新增
MyApp.isFullScreenEnabled()检查全屏功能可用性 - 新增
MyApp.setFullScreenEnabled()控制全屏功能启用状态 - 新增
MyApp.toggleFullScreen()切换全屏状态 - 全屏功能与智能停靠智能交互,避免功能冲突
- 新增
Improved #
- 概念澄清和命名优化:修正全屏和最大化功能的概念混淆
- 重命名
isDoubleClickFullScreenEnabled()→isDoubleClickMaximizeEnabled() - 重命名
setDoubleClickFullScreenEnabled()→setDoubleClickMaximizeEnabled() - 明确区分:最大化(占据工作区域,任务栏可见)vs 全屏(占据整个屏幕,隐藏系统UI)
- 移除不必要的F11快捷键,保持应用简洁性
- 重命名
Documentation #
- 智能托盘技术文档:新增
.doc/smart_tray_technical.md详细技术实现说明 - 智能托盘用户指南:新增
.doc/smart_tray_user_guide.md用户使用指南 - 全屏功能文档:在README.md中添加全屏功能的详细使用说明
- 基本API使用方法
- 与智能停靠的交互说明
- 全屏vs最大化的区别说明
- 注意事项和最佳实践
Technical #
- 智能托盘隐藏机制:完善智能停靠状态下的托盘隐藏逻辑
- 智能停靠激活时自动进入托盘模式,隐藏任务栏图标
- 窗口焦点管理:获得焦点时保持任务栏隐藏状态
- 退出智能停靠时自动恢复任务栏显示
- 状态管理优化:改进GetX响应式状态管理,修复UI更新问题
0.14.2 - 2025-07-28 [3c6360c] #
Enhanced #
- 简化MyTray配置:在
MyApp.initialize中添加tray参数,提供更简洁的托盘配置方式- 新增
tray: MyTray(...)参数,无需了解GetxService概念 - 保持向后兼容:传统的
MyService<MyTray>方式仍然支持 - 配置优先级:如果同时提供
tray参数和services中的MyTray,tray参数优先
- 新增
- 用户体验改进:降低新手使用门槛,与其他功能(如splash、theme等)的配置方式保持一致
Documentation #
- 更新README.md,展示新的简化配置方式,同时保留传统方式说明
- 更新.doc/my_tray_design.md,添加推荐和传统两种初始化方式的对比
- 更新example项目,使用新的简化配置方式
Fixed #
- 移除example/page9.dart中的"恢复窗口"按钮,简化界面
0.14.1 - 2025-07-27 [81957d6] #
Breaking Changes #
- 重要架构清理:完全移除
MyApp.initialize中的托盘相关参数:- 移除
enableTray参数 - 移除
trayIcon参数 - 移除
trayTooltip参数 - 删除
MyTrayWrapper组件文件
- 移除
- 唯一初始化方式:现在托盘功能完全通过
MyService<MyTray>管理,避免架构重复和参数冲突
Enhanced #
- 智能默认图标:
MyTray构造函数的iconPath参数现在可选,为空时自动使用各平台的默认应用图标:- Windows:
windows/runner/resources/app_icon.ico - macOS:
macos/Runner/Assets.xcassets/AppIcon.appiconset/app-icon-512@2x.png - Linux:
snap/gui/app_icon.png
- Windows:
- 早期错误检测:当默认图标文件不存在时,应用将无法启动并显示详细错误信息和解决方案
- API简化:
MyTray.setIcon()方法的参数现在可选,为空时使用默认应用图标 - 更新示例应用,移除
MyApp.initialize中的托盘参数,展示新的初始化方式
Documentation #
- 更新
.doc/my_tray_design.md,详细说明架构清理和智能默认图标功能 - 更新 README.md,新增 MyTray 使用示例和特性说明
- 强调唯一初始化方式的设计优势:避免配置冲突、架构清晰、职责单一
0.14.0 - 2025-07-27 #
Added #
- 新增系统托盘管理组件
MyTray,支持托盘图标、右键菜单、窗口最小化到托盘等功能 - 新增系统通知管理组件
MyNotify,基于flutter_local_notifications封装的跨平台通知管理器 - 新增托盘设计文档 (.doc/my_tray_design.md),详细说明托盘功能的设计理念和使用方法
- 新增通知使用指南 (.doc/my_notify_usage_guide.md),提供完整的系统通知功能说明
- 新增示例页面8 (page8.dart),展示托盘和通知功能的完整使用示例
- 新增托盘图标资源 (example/assets/icons/tray.ico),为示例应用提供托盘图标
Enhanced #
- 完善
MyApp类,新增对托盘和通知服务的支持 - 优化示例应用的服务注册,展示托盘和通知功能的集成方式
- 改进README文档,新增托盘和通知功能的详细介绍和使用示例
- 更新功能列表,新增系统托盘管理和系统通知管理功能
- 完善内置依赖包列表,新增
tray_manager、flutter_local_notifications、timezone等依赖
Dependencies #
- 新增
tray_manager: ^0.2.3- 系统托盘管理 - 新增
flutter_local_notifications: ^19.4.0- 本地通知 - 新增
timezone: ^0.10.0- 时区处理
Documentation #
- MyTray 组件遵循"无隐式消息"设计原则,只有用户明确操作时才显示反馈
- MyNotify 与 MyTray 职责分离:MyTray 专注托盘管理,MyNotify 专注系统通知
- 托盘功能仅在桌面平台(Windows/macOS/Linux)可用
- 通知功能支持所有平台:Android、iOS、macOS、Windows、Linux
0.13.1 - 2025-07-15 #
Added #
- 新增自适应侧边栏实现指南文档 (.doc/adaptive_sidebar_implementation_guide.md)
- 新增自适应侧边栏使用文档 (.doc/adaptive_sidebar_usage.md)
- 新增MyScaffold的leading参数支持,允许自定义左侧组件
- 新增MyScaffold的trailing参数支持,允许自定义右侧组件
- 新增示例服务类ExampleService,展示服务层架构
Enhanced #
- 完善MyScaffold自适应侧边栏功能,优化不同屏幕尺寸下的表现
- 改进MyScaffold在mini模式下的汉堡菜单图标显示逻辑
- 优化示例页面的导航和布局,提升用户体验
- 改进平台信息显示组件,增加更多系统信息展示
- 完善README文档,新增自适应侧边栏相关文档链接
Fixed #
- 修复智能隐藏dock功能的拖拽动画问题:增加拖拽完成检测,避免拖拽过程中过早触发对齐动画
- 重大简化:智能隐藏dock功能现在直接对齐到真正的屏幕边缘/角落,完全忽略任务栏
- 确保智能隐藏dock功能的拖拽对齐和鼠标悬停弹出位置一致性
Documentation #
- 新增智能隐藏dock功能修复总结文档 (.doc/smart_dock_fix_summary.md)
0.13.0 - 2025-07-15 #
Added #
- 新增自适应侧边栏实现指南文档 (.doc/adaptive_sidebar_implementation_guide.md)
- 新增自适应侧边栏使用文档 (.doc/adaptive_sidebar_usage.md)
- 新增MyScaffold的leading参数支持,允许自定义左侧组件
- 新增MyScaffold的trailing参数支持,允许自定义右侧组件
- 新增示例服务类ExampleService,展示服务层架构
Enhanced #
- 完善MyScaffold自适应侧边栏功能,优化不同屏幕尺寸下的表现
- 改进MyScaffold在mini模式下的汉堡菜单图标显示逻辑
- 优化示例页面的导航和布局,提升用户体验
- 改进平台信息显示组件,增加更多系统信息展示
- 完善README文档,新增自适应侧边栏相关文档链接
Fixed #
- 修复MyScaffold在不同模式切换时的UI一致性问题
- 解决示例页面在不同屏幕尺寸下的布局适配问题
0.12.0 - 2025-07-14 #
Added #
- 新增智能停靠系统重构,将原有单一文件拆分为模块化架构
- 新增
DockDetector类,专门负责检测窗口是否接近屏幕边缘 - 新增
MouseTracker类,处理鼠标位置追踪和悬停检测 - 新增
NativeWindowHelper类,封装原生窗口操作API - 新增
WindowAnimator类,专门处理窗口动画效果 - 新增
WindowFocusManager类,管理窗口焦点和激活状态 - 新增
SmartDock主控制器类,协调各个模块的工作
Enhanced #
- 重构智能停靠功能,采用模块化设计提升代码可维护性
- 优化窗口动画性能,减少不必要的重复动画执行
- 改进鼠标悬停检测逻辑,提升用户交互体验
- 完善智能停靠文档,新增详细的架构说明和使用指南
Fixed #
- 修复智能停靠过程中可能出现的窗口焦点问题
- 解决鼠标悬停时的动画冲突问题
- 优化边缘检测算法,提高停靠触发的准确性
Documentation #
- 新增
lib/src/smart_dock/README.md详细架构文档 - 更新主README文档中的智能停靠功能说明
- 完善代码注释,提升代码可读性
0.11.0 - 2025-07-12 #
Added #
- 新增细粒度平台检测功能到MyPlatform类
- 新增
MyPlatform.isWeb- 检测Web平台 - 新增
MyPlatform.isWindows- 检测Windows平台 - 新增
MyPlatform.isMacOS- 检测macOS平台 - 新增
MyPlatform.isLinux- 检测Linux平台 - 新增
MyPlatform.isAndroid- 检测Android平台 - 新增
MyPlatform.isIOS- 检测iOS平台 - 新增
MyPlatform.isFuchsia- 检测Fuchsia平台 - 新增
MyPlatform.platformName- 获取当前平台友好名称 - 在示例应用中新增平台信息显示组件,位于自适应侧边栏底部
Enhanced #
- 完善平台检测功能的单元测试覆盖
- 更新README文档,展示细粒度平台检测的使用方法
- 优化示例应用的平台信息展示,采用类似系统信息面板的设计风格
Documentation #
- 更新功能列表,强调跨平台工具类支持细粒度平台检测
- 新增完整的平台检测使用示例和API说明
0.10.3 - 2025-07-12 #
Fixed #
- 修正README中平台检测方法的错误调用方式
- 将
MyPlatform.isDesktopOs()更正为MyPlatform.isDesktop - 将
MyPlatform.isMobileOs()更正为MyPlatform.isMobile - 确保文档示例与实际API保持一致
0.10.2 - 2025-07-12 #
Documentation #
- 改进Toast功能文档说明,明确区分普通模式和堆叠模式的差异
- 修正README中Toast参数名称不一致问题(
stackToasts→stackPreviousToasts) - 新增Toast显示模式对比示例,帮助用户理解"连续显示Toast"的实现原理
- 优化Toast特性列表,突出显示两种显示模式的区别和使用场景
0.10.1 - 2025-07-09 #
Added #
- 新增窗口比例调整控制功能:
MyApp.setAspectRatioEnabled()和MyApp.isAspectRatioEnabled() - 在
MyApp.initialize()中新增setAspectRatioEnabled参数,默认值为true - 支持动态启用/禁用窗口固定比例调整,提供更灵活的窗口管理体验
Enhanced #
- 更新功能列表,新增"窗口比例调整控制"功能说明
- 在示例页面1中新增窗口比例调整切换按钮,方便用户测试该功能
- 优化窗口控制按钮布局,将原来的3个按钮重新排列为2行,提升界面美观性
Documentation #
- 更新 README.md,新增窗口控制API部分,详细介绍窗口比例调整功能
- 为窗口比例调整功能提供完整的使用示例和特性说明
0.10.0 - 2025-07-09 #
Added #
- 新增自适应侧边栏导航组件
MyScaffold - 根据屏幕尺寸自动切换显示模式:小屏幕使用抽屉或底部导航,中屏幕使用收缩侧边栏,大屏幕使用展开侧边栏
- 支持类似传统Flutter Scaffold的API设计,提供
drawer、body、appBar等参数 - 支持自定义断点宽度、抽屉宽度比例等配置选项
- 支持导航项徽章显示和侧边栏底部额外内容
- 新增
MyAdaptiveNavigationItem类用于定义导航项
Enhanced #
- 更新功能列表,新增"自适应侧边栏导航"功能说明
- 优化示例项目,展示自适应导航的使用方式
- 改进
MyList组件的GlobalKey重复问题处理
Documentation #
- 更新 README.md,新增自适应侧边栏导航功能介绍
- 为
MyScaffold组件提供详细的文档注释和使用示例
0.9.3 - 2025-07-08 #
Breaking Changes #
- 重要变更:将本地存储从
SharedPreferences替换为GetStorage - 移除
shared_preferences依赖,新增get_storage依赖 - 更新所有相关代码示例和文档,使用
GetStorageAPI
Enhanced #
MyApp.initialize()现在自动初始化GetStorage,新增initializeGetStorage参数(默认为 true)- 简化了本地存储的使用方式,提供更好的类型安全和响应式特性
- 优化了示例服务中的存储逻辑,移除了重复的初始化代码
Documentation #
- 更新 README.md 中的所有
SharedPreferences示例为GetStorage - 更新功能列表,将"基于shared_preferences的本地存储"改为"基于GetStorage的本地存储"
- 更新依赖包列表,将
shared_preferences替换为get_storage
0.9.2 - 2025-07-08 #
Added #
- 新增应用图标生成工具,支持一键为所有平台生成应用图标
- 新增
bin/generate.dart命令行入口,提供简洁的dart run xly:generate icon="图像路径"语法 - 新增
tool/icon_generator.dart核心图标生成工具类 - 支持 PNG、JPEG、JPG 格式的输入图像
- 自动检测项目中存在的平台并生成对应图标:Android、iOS、Windows、macOS、Linux、Web
- 为 example 项目生成了完整的图标资源文件作为使用示例
Enhanced #
- 图标生成工具自动创建必要的目录结构和配置文件
- 支持多种尺寸规格,确保各平台图标符合官方规范
- iOS 图标自动移除 alpha 通道,符合 App Store 要求
- Windows 平台生成 ICO 格式图标,包含多种尺寸
- 建议源图标尺寸 1024x1024 像素或更大,确保最佳质量
Documentation #
- 更新 README.md,添加应用图标生成功能的详细说明
- 更新 tool/README.md,补充图标生成工具的使用方法和特性介绍
- 提供清晰的命令示例和支持格式说明
0.9.1 - 2025-07-08 #
Fixed #
- 修复应用重命名工具的 Flutter 依赖问题,移除了对
dart:ui的依赖 - 将
app_renamer.dart从lib/src/移动到tool/目录,防止用户误导入 - 替换
debugPrint为print,确保命令行工具正常运行
Enhanced #
- 优化应用重命名工具的项目结构,提高代码组织性
- 完善文档说明,添加详细的使用指南和注意事项
- 在
tool/README.md中添加对原始 rename_app 项目的鸣谢
Documentation #
- 简化根目录 README.md 中的重命名功能介绍
- 创建专门的
tool/README.md文档,详细说明开发工具的使用方法 - 更新示例项目文档,统一命令格式
0.9.0 - 2025-07-03 #
Added #
- 新增智能边缘停靠功能,支持自动检测窗口拖拽行为并触发停靠
- 新增
SmartDockManager类,实现完整的智能窗口停靠机制 - 支持边缘停靠和角落停靠两种智能停靠模式
- 添加鼠标悬停显示/离开隐藏的交互逻辑,类似QQ的停靠体验
- 新增
setSmartEdgeDocking()方法,用于启用/禁用智能停靠 - 新增
enableSimpleEdgeDocking()方法,支持手动边缘停靠 - 新增窗口展开/收缩控制方法:
toggleDockedWindow()、expandDockedWindow()、collapseDockedWindow()
Enhanced #
- 优化动画系统,防止重复动画执行,提升性能
- 改进窗口停靠的用户体验,支持智能判断停靠类型
- 完善README文档,添加详细的智能停靠使用说明和功能对比表
Fixed #
- 修复动画过程中可能出现的重复执行问题
- 优化智能隐藏监听的启动和停止逻辑
0.8.0 - 2025-07-02 #
Added #
- 新增
appBuilder参数,允许在MyXlyApp顶层注入全局UI组件。 - 新增
MyFloatBar组件,一个可拖拽的浮动操作栏,可结合appBuilder使用。
0.7.0 - 2025-07-01 #
- 重构:优化
MyApp.initialize初始化逻辑,确立了“直接参数 -> 服务 -> 路由”的配置应用顺序,解决了因UI依赖(如flutter_screenutil)初始化时机不当而导致的LateInitializationError。 - 增强:新增窗口可调整大小(
resizable)的持久化设置,使其行为与现有的draggable设置一致,提升了用户体验。 - 文档:在
README.md中详细说明了新的初始化顺序和配置覆盖机制。 - 清理:移除了代码中用于调试的
debugPrint语句。
0.6.0 - 2025-06-16 #
- 新增窗口停靠功能:
MyApp.dockToCorner()方法,支持窗口停靠到屏幕四个角落 - 新增
WindowCorner枚举,定义窗口停靠位置(topLeft、topRight、bottomLeft、bottomRight) - 集成
screen_retriever依赖,用于获取屏幕信息和工作区域 - 窗口停靠功能自动检测任务栏位置,确保窗口不被遮挡
- 支持Windows、macOS、Linux桌面平台的窗口停靠
- 更新README.md,添加窗口停靠功能的详细文档和使用示例
- 在示例页面添加窗口停靠测试按钮,方便功能验证
- 将
window_manager和screen_retriever移至已重导出包列表
0.5.3 #
- 修复所有60个诊断消息(错误、警告、信息、提示)
- 将所有弃用的
withOpacity()替换为withValues(alpha: ...) - 修复弃用的颜色API(alpha、red、green、blue)
- 替换弃用的
addScopedWillPopCallback为addLocalHistoryEntry - 修复弃用的
dialogBackgroundColorAPI - 将所有
print语句替换为debugPrint - 移除未使用的代码元素和变量
- 修复私有类型在公共API中使用的问题
- 解决Windows平台CMake构建错误
0.5.2 #
- 修复README.md中底部菜单示例代码错误,将
MyBottomMenu.show()更正为MyDialogSheet.showBottom()
0.5.1 #
- 修复
flutter_inset_box_shadow依赖问题,更新为flutter_inset_shadow[git: 00fdbe0]
0.4.0 #
- 新增MyBottomMenu组件
- 新增MyEndOfListWidget组件
- 新增MyGroupBox组件
- 新增MyList和MyCardList组件
- 新增MyCard组件
- 给菜单组件新增阴影效果
0.3.0 #
- 新增Splash页面
- 新增MyDialog组件
- 新增通过Key返回上一页或退出App功能
- 新增MyApp.exit功能
- 其他细节优化
0.2.0 #
- 新增Focus拓展
- 新增MyButton组件
- 新增MyMenuItem组件
- 新增MyMenu组件
- 新增MyRouter组件
- 新增MyRouterOutlet组件
- 新增MyRouterOutletBuilder组件
0.1.0 #
- 新增MyApp.initialize功能