feat: 新增API响应模型、缓存配置和状态管理
refactor: 优化网络请求和错误处理 fix: 修复颜色引用和UI细节问题 docs: 更新API文档和设计规范 chore: 清理无用文件和脚本 perf: 优化图片导出和压缩逻辑 build: 更新依赖和构建配置 style: 调整代码格式和注释 test: 添加接口验证脚本 ci: 更新CI配置和脚本
This commit is contained in:
@@ -723,3 +723,211 @@ lib/editor/
|
||||
|-------|------|------|---------|
|
||||
| Phase 3 | v0.24.0 | PBR材质+环境光照+场景截图 | flutter_3d_controller深度适配 |
|
||||
| Phase 4 | v0.25.0 | 3D文字+网络3D模型 | Phase 3完成 |
|
||||
|
||||
---
|
||||
|
||||
## 十四、flutter_slidable ^4.0.3 — 接口详解 (🆕 v1.9.0 新增)
|
||||
|
||||
> 滑动操作组件,iOS风格列表项左滑/右滑操作
|
||||
|
||||
### 14.1 核心API
|
||||
|
||||
```dart
|
||||
Slidable({
|
||||
Key? key,
|
||||
required Widget child,
|
||||
SlidableController? controller,
|
||||
ActionPane? startActionPane, // 左滑/上滑操作面板
|
||||
ActionPane? endActionPane, // 右滑/下滑操作面板
|
||||
double closeOnScrollThreshold = 8.0,
|
||||
bool closeOnScroll = true,
|
||||
Duration closeDuration = const Duration(milliseconds: 400),
|
||||
})
|
||||
|
||||
ActionPane({
|
||||
required Widget motion, // 动画效果
|
||||
double extentToPreviousChild = 0.0,
|
||||
DismissiblePane? dismissible,
|
||||
List<Widget> children, // 操作按钮
|
||||
})
|
||||
|
||||
SlidableAction({
|
||||
VoidCallback? onPressed,
|
||||
Color backgroundColor,
|
||||
Color? foregroundColor,
|
||||
Widget? icon,
|
||||
String? label,
|
||||
bool autoClose = true,
|
||||
int flex = 1,
|
||||
BorderRadius? borderRadius,
|
||||
EdgeInsets? padding,
|
||||
})
|
||||
|
||||
// 4种内置动画
|
||||
ScrollMotion() // 滚动效果(推荐iOS风格)
|
||||
BehindMotion() // 背后显示
|
||||
StretchMotion() // 拉伸效果(最接近iOS原生)
|
||||
DrawerMotion() // 抽屉效果
|
||||
|
||||
// 控制器
|
||||
SlidableController controller;
|
||||
controller.openStartActionPane();
|
||||
controller.openEndActionPane();
|
||||
controller.close();
|
||||
```
|
||||
|
||||
### 14.2 可扩展功能清单
|
||||
|
||||
| # | 功能 | 对应API | 与现有功能结合点 | 优先级 | 状态 |
|
||||
|---|------|---------|-----------------|:------:|:----:|
|
||||
| SL1 | 📝 笔记滑动操作 | `endActionPane` | 笔记列表左滑删除/编辑 | P0 | ⏳ |
|
||||
| SL2 | ❤️ 收藏滑动操作 | `startActionPane` | 收藏列表右滑取消收藏 | P0 | ⏳ |
|
||||
| SL3 | 📜 历史滑动删除 | `DismissiblePane` | 阅读历史滑动删除 | P0 | ⏳ |
|
||||
| SL4 | 🔍 搜索历史滑动 | `SlidableAction` | 搜索页历史记录管理 | P1 | ⏳ |
|
||||
| SL5 | 🏷️ 标签滑动操作 | `endActionPane` | 标签重命名/删除 | P1 | ⏳ |
|
||||
| SL6 | 🛠️ 工具滑动操作 | `startActionPane` | 工具置顶/取消收藏 | P1 | ⏳ |
|
||||
| SL7 | 💬 句子卡片滑动 | `SlidableAction` | 收藏/分享/纠错快捷操作 | P2 | ⏳ |
|
||||
| SL8 | 🎨 自定义滑动动画 | `StretchMotion` | iOS风格拉伸效果 | P2 | ⏳ |
|
||||
|
||||
---
|
||||
|
||||
## 十五、flutter_sticky_header ^0.8.0 — 接口详解 (🆕 v1.9.0 新增)
|
||||
|
||||
> 粘性分组头组件,CustomScrollView中实现分组吸顶
|
||||
|
||||
### 15.1 核心API
|
||||
|
||||
```dart
|
||||
SliverStickyHeader({
|
||||
Key? key,
|
||||
required Widget header,
|
||||
required Widget sliver,
|
||||
bool sticky = true,
|
||||
SliverStickyHeaderController? controller,
|
||||
bool overlapsContent = false,
|
||||
})
|
||||
|
||||
SliverStickyHeader.builder({
|
||||
Key? key,
|
||||
required SliverStickyHeaderBuilderCallback builder,
|
||||
required Widget sliver,
|
||||
bool sticky = true,
|
||||
SliverStickyHeaderController? controller,
|
||||
bool overlapsContent = false,
|
||||
})
|
||||
|
||||
typedef SliverStickyHeaderBuilderCallback =
|
||||
Widget Function(BuildContext context, SliverStickyHeaderState state);
|
||||
|
||||
class SliverStickyHeaderState {
|
||||
double get scrollPercentage; // 0.0~1.0 滚动百分比
|
||||
bool get isPinned; // 是否吸顶
|
||||
}
|
||||
|
||||
class SliverStickyHeaderController
|
||||
extends ChangeNotifier {
|
||||
double get scrollOffset; // 当前粘性头偏移
|
||||
}
|
||||
```
|
||||
|
||||
### 15.2 可扩展功能清单
|
||||
|
||||
| # | 功能 | 对应API | 与现有功能结合点 | 优先级 | 状态 |
|
||||
|---|------|---------|-----------------|:------:|:----:|
|
||||
| SH1 | 📂 工具中心分类吸顶 | `SliverStickyHeader` | 工具面板按分类吸顶 | P0 | ⏳ |
|
||||
| SH2 | 🔥 热搜平台分组吸顶 | `SliverStickyHeader` | 热搜榜按平台分组 | P0 | ⏳ |
|
||||
| SH3 | 📝 笔记日期分组吸顶 | `builder + isPinned` | 笔记列表按日期分组 | P1 | ⏳ |
|
||||
| SH4 | 📜 历史日期分组吸顶 | `SliverStickyHeader` | 阅读历史按日期分组 | P1 | ⏳ |
|
||||
| SH5 | 🎨 传统色色系吸顶 | `SliverStickyHeader` | 传统色按色系分组 | P1 | ⏳ |
|
||||
| SH6 | 📝 汉语拼音分组吸顶 | `SliverStickyHeader` | 汉字查询A-Z分组 | P2 | ⏳ |
|
||||
| SH7 | 🍶 酒方分类吸顶 | `SliverStickyHeader` | 酒方按分类分组 | P2 | ⏳ |
|
||||
| SH8 | 🎭 吸顶动画效果 | `builder + scrollPercentage` | 吸顶时header渐变/缩放 | P2 | ⏳ |
|
||||
|
||||
---
|
||||
|
||||
## 十六、value_layout_builder ^0.5.0 — 接口详解 (🆕 v1.9.0 新增)
|
||||
|
||||
> LayoutBuilder扩展,布局阶段传递自定义值,flutter_sticky_header底层依赖
|
||||
|
||||
### 16.1 核心API
|
||||
|
||||
```dart
|
||||
ValueLayoutBuilder<T>({
|
||||
Key? key,
|
||||
required ValueLayoutWidgetBuilder<T> builder,
|
||||
})
|
||||
|
||||
typedef ValueLayoutWidgetBuilder<T> =
|
||||
Widget Function(BuildContext context, BoxValueConstraints<T> constraints);
|
||||
|
||||
class BoxValueConstraints<T> extends BoxConstraints {
|
||||
final T value;
|
||||
}
|
||||
|
||||
class SliverValueLayoutBuilder<T> {
|
||||
SliverValueWidgetBuilder<T> builder;
|
||||
}
|
||||
|
||||
class SliverValueConstraints<T> extends SliverConstraints {
|
||||
final T value;
|
||||
}
|
||||
```
|
||||
|
||||
### 16.2 可扩展功能清单
|
||||
|
||||
| # | 功能 | 对应API | 与现有功能结合点 | 优先级 | 状态 |
|
||||
|---|------|---------|-----------------|:------:|:----:|
|
||||
| VL1 | 📐 响应式断点传递 | `ValueLayoutBuilder<Breakpoint>` | 替代MediaQuery布局断点 | P2 | ⏳ |
|
||||
| VL2 | 🎨 主题值布局传递 | `ValueLayoutBuilder<ThemeData>` | 配合sticky_header传递滚动偏移 | P3 | ⏳ |
|
||||
| VL3 | 📊 列表项位置感知 | `SliverValueLayoutBuilder` | 列表项可见性检测 | P3 | ⏳ |
|
||||
|
||||
> 注:此库主要作为 flutter_sticky_header 的依赖,独立使用场景较少
|
||||
|
||||
---
|
||||
|
||||
## 十七、已有库 + API 组合扩展 (🆕 v1.9.0 新增)
|
||||
|
||||
### 17.1 现有库未充分利用能力
|
||||
|
||||
| 已有库 | 当前用途 | 🔓 可扩展功能 |
|
||||
|--------|----------|---------------|
|
||||
| `cached_network_image` | 图片缓存显示 | 配合热搜API显示热搜配图 |
|
||||
| `connectivity_plus` | 网络检测 | 工具状态实时监测(离线灰显) |
|
||||
| `image_picker` + `file_picker` | 选图 | OCR识别工具 + 图片压缩工具 |
|
||||
| `share_plus` | 分享 | 所有工具结果一键分享 |
|
||||
| `shimmer` | 骨架屏 | 工具列表加载态 + 搜索结果加载态 |
|
||||
| `flutter_animate` | 动画 | 工具卡片入场动画 + 签到庆祝动画 |
|
||||
| `confetti` | 庆祝效果 | 签到成功 + 成就解锁 |
|
||||
| `lottie` | Lottie动画 | 工具加载动画 + 空状态动画 |
|
||||
| `adaptive_palette` | 图片主色提取 | 句子卡片自动取色背景 |
|
||||
| `flutter_svg` | SVG渲染 | 工具分类图标 + 空状态插画 |
|
||||
| `google_fonts` | 字体 | 笔记编辑器字体选择 + 卡片字体 |
|
||||
| `gal` | 保存到相册 | 卡片导出保存 + 传统色保存 |
|
||||
| `archive` + `crypto` | 压缩/加密 | 数据导出加密 + 笔记备份 |
|
||||
| `drift` | 本地数据库 | 工具使用统计持久化 + 搜索历史 |
|
||||
| `flutter_secure_storage` | 安全存储 | 隐私笔记加密存储 |
|
||||
|
||||
### 17.2 API + 已有库组合扩展
|
||||
|
||||
| 组合 | 功能 | 需新增库 |
|
||||
|------|------|----------|
|
||||
| `/api/hanzi/search` + `drift` + `shimmer` + `flutter_sticky_header` | 17种汉语工具 + 本地缓存 + 加载态 + 分组吸顶 | ❌ |
|
||||
| `/api/hot/read` + `cached_network_image` + `flutter_sticky_header` | 热搜榜 + 配图 + 平台分组吸顶 | ❌ |
|
||||
| `/api/hanzi/china_colors` + `gal` + `adaptive_palette` + `flutter_sticky_header` | 传统色浏览 + 保存 + 取色 + 色系吸顶 | ❌ |
|
||||
| `/api/webapi/ocr` + `image_picker` + `flutter_slidable` | OCR识别 + 历史记录滑动删除 | ❌ |
|
||||
| `/api/webapi/ImgCompress` + `image_picker` + `gal` | 图片压缩 + 保存 | ❌ |
|
||||
| `/api/hanzi/search` + `share_plus` + `flutter_animate` + `flutter_slidable` | 趣味工具 + 分享 + 动画 + 滑动操作 | ❌ |
|
||||
| `/api/hitokoto/*` + `confetti` + `flutter_animate` | 一言句子 + 庆祝效果 + 动画 | ❌ |
|
||||
| `/api/user/note` + `flutter_slidable` + `flutter_sticky_header` | 笔记CRUD + 滑动操作 + 日期分组吸顶 | ❌ |
|
||||
| `/api/user/favorite` + `flutter_slidable` | 收藏管理 + 滑动取消收藏 | ❌ |
|
||||
|
||||
### 17.3 还需要的第三方库
|
||||
|
||||
| 库 | 用途 | 对应功能 | 优先级 | 状态 |
|
||||
|----|------|----------|:------:|:----:|
|
||||
| `flutter_markdown` | Markdown渲染 | 工具结果/笔记/说明展示 | P1 | ⬜ |
|
||||
| `pull_down_button` | iOS下拉菜单 | 工具操作菜单 | P1 | ⬜ |
|
||||
| `sliver_tools` | Sliver组合工具 | 多Sliver布局组合 | P2 | ⬜ |
|
||||
| `bot_toast` | Toast提示 | 操作反馈 | P2 | ⬜ |
|
||||
| `in_app_review` | 应用评分 | 引导用户评分 | P3 | ⬜ |
|
||||
| `app_links` | 深度链接 | 外部打开工具 | P3 | ⬜ |
|
||||
|
||||
Reference in New Issue
Block a user