虚拟列表(ScrollView) ,需要显示大量Item时能大幅降低Drawcall

这个组件确实支持啊,只是要提前把宽/高数据都算出来,我目前想不到除此以外更好的方法。Demo里,点按钮Custom Height就能看到效果。

mark

mark

我们现在是在入屏之前 render 之后实时获取这个 node 的尺寸更新位置的, 可以做到动态高度, 但是实现的也不完美, 拖动会有重叠和卡顿的现象

mark

mark

Item拆成容器空节点和动态滚动显示的内容节点, 布局就用 Layout, 有多少个列表项就创建多少个容器, 每次滑动遍历所有容器是否在显示区域, 需要显示就从节点池里面取出内容节点添加容器中, 不显示的把内容节点放入节点池, 容器再套个 Widget, 会随着内容节点尺寸变化而变化, 这样就能做出想要的任何布局, Grid 布局也能做到, 缺点是列表项不能太多, 几十上百个还是可以的

mark

MARK,一直想要虚拟列表,自己写的不好用,试试这个。

感谢分享,用用看看

mark

战略插眼

mark

mark

粗略看了一下楼主代码,实现有些复杂了。可以看看我的实现。
虚拟列表

4赞

mark

mark1

战略性mark

设置item宽高有什么便捷的方法吗 , 提前设置好感觉不灵活

手动Mark