Files
App.K12.Student.Miniapp_Flu…/docs/demos
2026-09-04 15:22:20 +08:00
..
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00
2026-09-04 15:22:20 +08:00

docs/demos —— Demo 学习文档索引

本目录为 lib/pages/demo/ 下 29 个独立功能模块逐一配套的学习文档, 面向 Flutter 初学者:讲清实现用法和思想(为什么这么写),并标注踩坑记录。

配套文档:项目整体架构(含 Riverpod / Isar 新手教程)见 ../exam_architecture.md, 本目录是"每个功能怎么实现"的细节版,两者配合阅读效果最佳。


一、分类索引(29 个)

🧱 基础布局(13)

Demo 文件 一句话 文档
align_demo.dart 对齐与约束:一行代码把一个组件摆到任意位置 align_demo.md
wrap_demo.dart 流式布局:小标签自动换行,放不下就换一排 wrap_demo.md
stack_demo.dart 层叠布局:角标、遮罩、悬浮按钮全靠它 stack_demo.md
grid_demo.dart 网格布局:GridView 三列宫格(九宫格) grid_demo.md
list_demo.dart 长列表:ListView.builder 懒加载 + 下拉刷新 list_demo.md
sliver_demo.dart 可折叠顶栏:SliverAppBar 收起展开 + 吸顶 sliver_demo.md
responsive_demo.dart 响应式:一个页面同时适配手机/平板/桌面 responsive_demo.md
text_demo.dart 文本组件:样式、行高、溢出省略号 text_demo.md
input_demo.dart 输入框:TextField 全家桶 + 键盘类型 input_demo.md
form_demo.dart 表单校验:GlobalKey + validator 规则 form_demo.md
theme_demo.dart 主题:多品牌换肤、全局样式统一管理 theme_demo.md
seed_palette_demo.dart 种子色:ColorScheme.fromSeed 一键生成配色 seed_palette_demo.md
animation_demo.dart 动画:隐式/显式/路由转场/Hero/CustomPaint animation_demo.md

🌐 网络(3)

Demo 文件 一句话 文档
dio_demo.dart 请求封装:DioClient + ApiException 统一错误 dio_demo.md
dio_pro_demo.dart 进阶:拦截器/重试/CancelToken/Web 兼容 dio_pro_demo.md
oss_upload_demo.dart 阿里云 OSS 直传:STS 临时凭证 + V4 签名 oss_upload_demo.md

💾 存储(2)

Demo 文件 一句话 文档
isar_watch_demo.dart 本地库 + 响应式:Isar 增删改查 + watch 自动刷新 isar_watch_demo.md
wrong_flow_demo.dart 完整业务链路:接口 + 本地 + watch 三层协作 wrong_flow_demo.md

🧭 路由(4)

Demo 文件 一句话 文档
router_demo.dart 应用入口:路由表注册 + 首页组装 router_demo.md
router_home_page.dart 三种跳转姿势:push 传参 / await 返回值 / pushNamed router_home_page.md
detail_page.dart 参数接收:构造传参 vs 命名路由 arguments detail_page.md
picker_page.dart 选择器页:pop 带值返回(选性别) picker_page.md

🧩 组件封装(6)

Demo 文件 一句话 文档
note_picker_demo.dart 多图选择页:加号格 + 缩略图 + 删除角标 note_picker_demo.md
image_demo.dart 图片四来源 + BoxFit + 错误兜底 image_demo.md
audio_player_demo.dart 音频控制条组件(HTTP Range 验收) audio_player_demo.md
rich_text_demo.dart HTML 富文本渲染 + 字号/深色注入 rich_text_demo.md
smooth_sheet_demo.dart 常驻多停靠底部面板(非模态) smooth_sheet_demo.md
share_demo.dart 分享五场景:文本/图片/海报截图/存相册 share_demo.md

🎓 考试(1)

Demo 文件 一句话 文档
exam_demo.dart 试卷练习入口:大数据滑动验证(关联主架构) exam_demo.md

二、推荐学习路径(按顺序)

阶段 1  布局基础(约 1 周)
        align → wrap → stack → grid → list → sliver → responsive

阶段 2  文本与输入
        text → input → form

阶段 3  主题与动画
        seed_palette → theme → animation

阶段 4  路由导航
        router → router_home_page → detail_page → picker_page

阶段 5  数据层
        isar_watch → wrong_flow

阶段 6  网络层
        dio → dio_pro → oss_upload

阶段 7  组件封装(进阶)
        image → audio_player → rich_text → smooth_sheet → note_picker → share

阶段 8  综合实战
        exam_demo → ../exam_architecture.md(完整架构)

建议:前 4 个阶段每天 1~2 个 demo,把每份文档"关键代码剖析"手敲一遍; 阶段 5 之后开始读 ../exam_architecture.md(Riverpod/Isar 前置知识)。


三、文档公约

每份文档统一六章结构,方便快速定位:

章节 内容
一、这个 Demo 解决什么问题 业务场景 + 对照 Vue 类比
二、怎么运行 / 演示内容 runApp 命令 + 演示点
三、核心知识点(新手向) 速查表 + 代码块 + 为什么这么写
四、关键代码剖析 核心代码逐行解释
五、踩坑记录 编号列表,每条 = 一个真实教训
六、扩展思考 关联其他文档 + 真实项目落地建议

文档之间用相对链接互引(如 [list_demo.md](list_demo.md)),GitHub / IDE 均可直接跳转。