ScrollView组件的content的内容为grid类型的layout。现在往该layout里面添加300个节点,非常慢,比添加200个节点的情况要慢好几倍。
我设置了节点初始化时输出控制台,发现节点初始化的间隔越来越大,也就是说添加子节点的速度越来越慢。是不是layout添加子节点的时候,运行速度会受到总子节点数量影响?如何解决这个问题?
用NodePool,ScrollView里只显示需要加载的节点,移出去的节点放回NodePool,新进节点从NodePool里取出并初始化。
我确实是使用nodepool的。
并且这里的情况是添加子节点的速度随着数量增加越来越慢,推理一下应该是组件被添加到layout的性能问题。
这个应该是事件机制导致的,每一个 layout 内部的节点都会侦听 size change, position change, anchor change 事件,这个很耗性能。因为这些子节点的这些因素有变化,需要重新排版。可以考虑让 layout 排版只做一次,类似于 widget 的 align once.
能否提供一个 demo 给我? 谢谢啦
能否提供一个 demo,我 profile 一下看看性能问题在哪里,谢谢。