很多组件都会隐藏着他的特出处理机制,了解他们的工作原理会使了解很多现象,你也能开发出更加有效率的软件
Flutter-ListView重用机制
Listview是开发软件过程中常用的组件,我们在ios和Android上都有Listview的缓存以及view复用机制,Android中还针对的出了新控件RecyclerView,flutter的Listview也有个简单复用
flutter ListView因为没有item的重用id,所以每次滑动ListView,它会重新创建、布局、绘制可见区域内的item,一般会多绘制可见区域以外2-4个item,即预加载机制,这点跟iOS有点类似.当item不在屏幕显示的时候,会执行dispose.
Flutter整个框架对UI进行了优化,所以不必担心重复创建item的内存消耗问题.ListView的重用机制就是Flutter对UI的重用机制,优化更加彻底,会重用item对应的element和renderObject对象,因为item对象每次都会重新创建.item对象是轻量级的,它关联的renderObject和element才是正在消耗内存的,只要这两个有缓存机制就没什么大问题.而且ListView必须滚动到指定位置之后才会触发相关区域item的创建、布局等操作.
网友评论