解读Flutter源码之Listener

注:本文代码基于Flutter SDK 3.13.5 一、什么是Listener? Listener可以用来监听原始指针事件(Raw Pointer Event,在移动设备上通常为触摸事件),先来看下它的注释&部分源码。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

解读Flutter源码之NotificationListener

注:本文代码基于Flutter SDK 3.13.5 一、前言 在之前解读Flutter源码之InheritedWidget一文中,我们已知晓,在Widget多层嵌套的情况下,将数据从父级Widget传递给子级Widget时,采用InheritedWidget的方式非常好用。 但是,如果传递方向是反过来

解读Flutter源码之Animation

注:本文代码基于Flutter SDK 3.13.5 一、前言 如果你开发的App失去了交互动画,那么这将是一件很难想象的事情,此时它的体验必然一言难尽,用户会为它贴上“傻快”、“生硬”、“粗糙”等标签,从而你将不得不丢失一部分用户。 因此,精心设计的动画会使UI更生动,它有助于提升App更精巧的外观和

解读Flutter源码之InheritedWidget

注:本文代码基于Flutter SDK 3.13.5 一、子Widget多层嵌套之状态管理问题 在Flutter开发中,如果父Widget想要控制子Widget的状态,最常见的办法是把子Widget的状态提升到父Widget中,当父Widget修改该状态并且执行了setState方法之后,子Widge

解读Flutter源码之Key

注:本文代码基于Flutter SDK 3.13.5 一、Key是什么? 在Flutter中,Key的使用是很常见的,就以Scaffold这个Widget来说,当人们使用它的Drawer功能时,必然会涉及openDrawer与closeDrawer这两个行为,它们的具体方法实现定义在ScaffoldS

解读Flutter源码之setState

注:本文代码基于Flutter SDK 3.13.5 一、前言 在上一文解读Flutter源码之StatefulWidget&State的生命周期中,笔者分析了State生命周期的相关方法,但碍于篇幅有限,对于setState方法只是进行了简单描述,还未进行深入分析。 因此,本文将会深入分析se

解读Flutter源码之StatefulWidget&State的生命周期

注:本文代码基于Flutter SDK 3.13.5 一、前言 在上一文解读Flutter源码之runApp中,笔者对于StatefulWidget与StatefulElement源码的分析并未足够深入,而且State相关的分析也并未涉及。 因此,本文将会深入分析StatefulWidget的源码&am

解读Flutter源码之runApp

注:本文代码基于Flutter SDK 3.13.5 一、前言 在上一文Flutter源码之三颗树分类中,我们对Flutter的三颗树Widget、Element、RenderObject进行了简单的分类,知道了Widget可分为RenderObjectWidget一类和非RenderObjectWi