Flutter中的三棵树是如何完成绘制的

定义Widget:存放渲染内容、它只是一个配置数据结构,创建是非常轻量的,在页面刷新的过程中随时会重建。其中Widget根据功能可以分为三类:组合类StatelessWidget/StatefulWidget:比如我们常见的Container就是一个组合类的控件,它主要负责组合封装多个其他负责绘制的原子组件。代理类inheritedwidget:它的父类是ProxyWidget,顾名思义。简单来说,InheritedWidget 的作用是向它的子 Widget 有效地传播和分享数据,当 InheritedWidget 作为一个Parent Widget时,它下面的Widget tree的...

Flutter开发 2021-09-29 PM 674℃ 0条

如何在ListView中优雅的嵌套ListView

前言日常的开发工作中,经常会遇到列表中嵌套ListView的需求。具体情况也分为两种。1.竖向ListView嵌套横向ListView常见的需求:竖向ListView行数不限制,横向ListView的列数不限制。具体情况如下图。代码如下: ListView( children: [ Text('ListView'), Stack( children: [ IgnorePointer( child: Opacity( ...

Flutter开发 2021-07-06 PM 723℃ 0条

如何解决Flutter中的依赖冲突

前言今天更新第三方依赖库,执行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 ...

Flutter开发 2021-04-22 AM 770℃ 0条

Flutter中的BuildContext到底是什么

前言首先我们看看官方的定义:[BuildContext] objects are actually [Element] objects. The [BuildContext] interface is used to discourage direct manipulation of [Element] objects. [BuildContext] 对象实际上是 [Element] 对象。 [BuildContext] 接口用于阻止直接操作 [Element] 对象。根据官方这段注释,可以了解到BuildContext 实际上就是 Element 对象,产生的意义主要是为了防止开发者直...

Flutter开发 2021-03-11 PM 568℃ 0条

给AsyncDisplayKit(Texture)替换网络图片下载缓存框架

前言为了方便管理图片缓存,统一缓存文件夹和缓存方法,将AsyncDisplayKit自带的PINRemoteImage插件,替换为项目在用的Kingfisher、SDWebImage。import Kingfisher extension ASNetworkImageNode { static func imageNode() -> ASNetworkImageNode { return ASNetworkImageNode(cache: ASImageManager.shared, downloader: ASImageManager.shared) ...

iOS开发 2020-08-03 PM 2175℃ 0条