这门课解决什么工作场景
日常用 Flutter 写业务时,大家多半停留在“能跑就行”的阶段:用 ListView 塞一堆列表,遇到复杂的吸顶、嵌套滑动就四处找现成轮子。但真到了要做复杂信息流、多 Tab 嵌套滚动、或者滑动卡顿需要排查性能瓶颈时,只懂 API 调用就不够用了。这门课解决的就是“知其然不知其所以然”的痛点。它不教基础布局,而是直接带你扎进滑动体系的源码,拆解 Scrollable、Viewport 和 Sliver 之间是怎么协作完成一次滚动的。如果你正被复杂的嵌套滑动逻辑折磨,或者想在团队里成为排查滑动疑难杂症的把关人,这套源码拆解能帮你把底层的黑盒打开。
适合什么基础与建议先看哪几块
这套资料不适合零基础。你需要已经能熟练使用 Flutter 写过完整页面,了解 Widget、Element、RenderObject 的基本关系,否则直接看源码分析容易劝退。建议拿到资料后,不要从头按顺序硬啃,而是结合你手头最头疼的业务场景去对照。第一优先看 ListView 与 ScrollView 的源码拆解,建立对视口和滑动构成的基础认知;接着直接跳到 NestedScrollView 嵌套滑动和 Sliver 吸顶效果这两块,这是日常开发中最容易出 Bug、且最难调的地方。把这两块的底层约束机制弄懂,你就能解决八成以上的复杂滑动难题。至于 Notification 相关的滑动事件分发,可以在你实际需要处理联动交互时再回来查漏补缺。
学完能独立做什么与资料怎么配合练习
学完之后,你不再需要依赖第三方库去拼凑复杂的滑动效果,而是能独立设计并实现自定义的 Sliver 组件,比如定制化的吸顶动画、多级嵌套滚动联动,或是精确控制列表的内存缓存与预加载策略。看资料时,务必打开本地的编辑器同步操作。源码课最忌讳只用眼睛看,正确的配合方式是:跟着讲解在本地 Flutter SDK 中找到对应的源码打断点,自己写一个极简的测试 Demo 跑起来,通过实际滑动操作去观察 Scrollable 和 Viewport 之间的数据流转。每看完一个核心组件的实现逻辑,就立刻在自己的项目里试着重写一遍原生组件,用业务场景去验证约束机制。只有把源码里的理论映射到自己敲出的代码运行结果上,这套底层知识才算真正长进你的技术栈里。
从源码入手,带你深入探索 Flutter 滑动体系
课程目录
* 开篇: 认知视口滑动的构成
* 从 ListView 的源码开始谈起
* 探索 BoxScrollView 与 ScrollView 组件
* 探索 ScrollView 一族其他滑动组件
* Scrollable 与 Viewport 的珠联璧合
* 探索 Scrollable 组件成员属性
* 探索 ViewPort 组件成员属性
* 再探索 ScrollView 一族的实现
* 探索 Sliver 组件吸顶效果
* 探索 NestedScrollView 嵌套滑动
* 探索 SliverConstraints 滑块约束
* 探索滑动中加载和缓存的实现
* 探索 Sliver 一族组件的必要性
* 探索 PageView 源码实现
* 探索 SingleChildScrollView 源码实现
* 探索 Notification 通知机制
* 探索 ScrollableState 滑动处理逻辑
* 探索 ScrollableState 动画处理逻辑






