【 Flutter 滑动探索】第四本小册上线

2022-03-29 13:04:57 浏览数 (1)

一、对于一些问题的回应

最近为什么不怎么更文了?

从 2021 年 11 月份,到现在大概三个月的时间,没有发布过什么新文章。期间一波三折,经历了拆迁、装潢、搬家,很多琐事缠身,业余时间的主要精力也都放在了这本小册身上。小册在年前完成的,也算为我这平静的一年画上一个完美的句号。


现在已上架了哪些 Flutter 相关的小册?

在此之前已经发布了三本小册,分别针对 Flutter 中的 绘制手势动画 进行系统的介绍。现在,又加入了一位新兄弟 Flutter 滑动探索

  • Painting 绘制模块 : 《Flutter 绘制指南 - 妙笔生花》
  • Gestures 手势模块: 《Flutter 手势探索 - 指掌天下》
  • Animation 动画模块 :《Flutter 动画探索 - 流光幻影》
  • Flutter 滑动探索:《Flutter 滑动探索 - 珠联璧合》

还会有其他的小册上架吗?

以前对 Flutter 知识体系进行过整体的规划,预计会通过 7 本小册,来全面认识 Flutter 框架。现在已经完成了四本,后续的内容会陆续进行,敬请期待~

之前的小册还会进行更新吗?

一方面,Flutter 的版本更新是比较快的,前三本小册书写时,还未使用空安全。或者 Flutter 有些破坏性的更新,会使旧版本出现问题,从而影响小册的使用。另一方面,随着本人对 Flutter 研究的深入,可能会有一些新的发现,或对之前代码的实现有一定的优化。或者一些错别字已经个人理解的偏差等。 这些都需要对小册内容进行更新,在后续会着手准备这些更新事宜。

小册定价这么低,划算吗?以后会涨价吗?

我并不是靠写文章吃饭的,所以并不太在意文字对我带来的利益。通过小册的撰写,让我有机会对 Flutter 的方方面面进行系统的梳理,其中为我技术上带来的成长与收获,是不能通过金钱来衡量的。通过我的分享,让更多人可以接触或钻研 Flutter ,本身也是一件很有意义的事。 预计的 Flutter 知识体系的七本小册,都会以 3.5 元出售,不会涨价。


二、为什么选择探索滑动体系

我们日常开发中接触到的关于滑动的知识只是冰山一角,很多人也只是了解 ListViewPageView 等几个组件的使用而已,甚至连 NestScrollViewCustomScrollView 都用不好,遇到 Sliver 就头大,完全不知道该怎么玩。我在一开始对它们也没有很深刻的认识。

当认清 Flutter 滑动体系的构成及运作逻辑后,从源码的角度去认识这些组件的构成和用途,自然能站在更高的维度来使用它们。在遇到关于滑动的异常或新需求时,可以从更广阔的视角去看待问题,而非只知皮毛,管中窥豹。 对源码的探索本身就是一件很有意义的事,从中可以看到创作者对类结构的定义,如何处理类与类之间的关系。对于一些精彩的逻辑处理,可能也会激发我们的灵感。当我们通过源码可以读懂他们所描绘的 风采,在手指滑动列表的那一刻,目之所见已不再仅是视口的滑动,还有滑动机制中的各个对象如何像齿轮一样啮合,驱动整个体系的运转。


为何选择滑动体系作为第四本小册内容

滑动机制 可以看做是对框架层的一个承上启下体系。向上可以连接到 滑动组件 Widget 层 ,向下可以连接到 手势 Gesture 层动画 Animation 层 ;在 视口Sliver 内容相关实现中,还会涉及到 渲染 Rendering 层 的知识。所以选取对 滑动体系 的探索作为第四本 Flutter 小册的内容。

另外,也是很多朋友希望深入了解一下 滑动体系 ,但又苦于看不懂源码。我也比较像深入认识一下 滑动体系 ,所以决定潜心探索一下,将其过程记录下来,分享给大家。


三、 本册内容简介

第一部分主要目的是对 视口滑动 的构成进行初步的认知,其中会通过对我们最熟悉的 ListView 进行源码分析,从而引出其背后更深层的知识,以此从源码中逐步认知构成 滑动体 所必要的成分。


第二部分是对 ScrollableViewport 这两个滑动构成要素做初步的认识。主要从成员属性的角度进行介绍,并结合源码进行分析,以此对 滑动体系 有个大致的认知,为后面的探索打下基础。


第三部分是对 Sliver 进行探索,首先通过对 Sliver 组件的使用开始介绍,然后从渲染对象的角度去分析 Sliver 组件存在的必要性。其中也包含对缓存区实现的及 keepAlive 保活机制的探索。


最后一部分,是对滑动处理机制的探索。开始通过对 PageViewSingleChildScrollView 组件的源码实现进行分子,然后介绍 Notification 通知机制,在前面知识的铺垫下,最后对 ScrollableState 中拖动事件的回调处理进行分析。


对 Flutter 滑动体系的源码探索让我收获良多,也希望我眼中所见的光景,可以通过这本小册传达给更多人。谢谢大家一直以来的支持 ~

0 人点赞