重复滚动列表的核心策略就是循环使用缓存池中的节点,在滚动列表滑动时刷新子节点位置和内容,避免单次新建太多节点导致的问题。
使用scrolling监听滚动列表。
this.scrollView.node.on("scrolling", this.onScrolling.bind(this), this);
计算当前滚动到的位置判断是否需要刷新。
基本构成如上:红色区域就是展示区域,正式使用会通过蒙版遮罩;黄色区域是已经构建完成的子节点,在接下来的滚动过程中只会刷新这些节点的位置和内容;蓝色区域是所有子节点加起来的区域。
无遮罩滚动列表的效果如下:
show
加上遮罩后滚动列表的效果如下:
hide
代码下载地址在这里: