这门课解决什么工作场景

日常用 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 动画处理逻辑