定义Widget:存放渲染内容、它只是一个配置数据结构,创建是非常轻量的,在页面刷新的过程中随时会重建。其中Widget根据功能可以分为三类:组合类StatelessWidget/StatefulWidget:比如我们常见的Container就是一个组合类的控件,它主要负责组合封装多个其他负责绘制的原子组件。代理类inheritedwidget:它的父类是ProxyWidget,顾名思义。简单来说,InheritedWidget 的作用是向它的子 Widget 有效地传播和分享数据,当 InheritedWidget 作为一个Parent Widget时,它下面的Widget tree的...
前言日常的开发工作中,经常会遇到列表中嵌套ListView的需求。具体情况也分为两种。1.竖向ListView嵌套横向ListView常见的需求:竖向ListView行数不限制,横向ListView的列数不限制。具体情况如下图。代码如下: ListView( children: [ Text('ListView'), Stack( children: [ IgnorePointer( child: Opacity( ...
前言今天更新第三方依赖库,执行flutter pub get后,报错了Because project depends on path_provider 1.6.8 which doesn't match any versions, version solving failed. pub get failed (1; Because project depends on path_provider 1.6.8 which doesn't match any versions, version solving failed.) Process finished with exit code ...
前言首先我们看看官方的定义:[BuildContext] objects are actually [Element] objects. The [BuildContext] interface is used to discourage direct manipulation of [Element] objects. [BuildContext] 对象实际上是 [Element] 对象。 [BuildContext] 接口用于阻止直接操作 [Element] 对象。根据官方这段注释,可以了解到BuildContext 实际上就是 Element 对象,产生的意义主要是为了防止开发者直...
前言为了方便管理图片缓存,统一缓存文件夹和缓存方法,将AsyncDisplayKit自带的PINRemoteImage插件,替换为项目在用的Kingfisher、SDWebImage。import Kingfisher extension ASNetworkImageNode { static func imageNode() -> ASNetworkImageNode { return ASNetworkImageNode(cache: ASImageManager.shared, downloader: ASImageManager.shared) ...