Cocos Creator3.x ScrollView 性能优化之 SuperScrollView 开箱即用

git進不去耶

如果需要滚动动画 那么必须要提前知道从0-99条数据的尺寸,但实际item也许只有10个 并且每条数据的尺寸也是未知的 所以就无法判断,除非通过一个方法循环判断你所有数据的真实尺寸,这很耗费性能,scrollToIndex方法实际上就是根据现有item数量 来计算你指定的那条数据 如果那条数据正好当前位置,那么久不会有滚动动画 直接显示

这个功能不是每个人都需要的通用功能,所以你可以做个定时器自己去实现就好了

git上只有旧版本 新版本挂在商店了 super-scrollview | Cocos Store

嗯,自动播放的功能可以自己用定时器去实现,没有动画那个问题有解决方案吗?页面少一些让其等于真实的item能否解决问题?这个功能需求还是很迫切的,比如轮播banner广告,自动间隔切换,没有动画感觉很生硬。

一般情况下,pageview的页数和大小都是固定的

能提供给一个按索引的尺寸回调吗,给使用者补充,业务是知道什么数据,是什么尺寸,并不一定需要真实计算。

multiple
此参数决定了创建item的总数,默认为2倍 比如view可视尺寸为800 2倍就是1600,当已创建的item总尺寸大于等于 1600时就会停止创建

super layout的这个参数改大,可以全填充,带时间参数,能滚动。就是全填充,少了性能优势。

从 v2.1.0版本就增加了一个 updateItemSize 方法 就是你在更新item尺寸或缩放时 都要调用这个,如果没有调用就会自动计算 调用了就不会自动计算了

我研究研究

这个没有动画的问题 在v2.1.2版本已经解决 商店正在审核中

新版demo的horizontal-page-scrollview这个场景还是没有动画,我手动设置Multiple这个参数之后就可以了,设置大一些应该就是真实的item了,就是不知道会不会耗性能,不过一般的pageview都是展示3到5个页面左右的,问题应该不大。

我测试的是创建2个item 倍数是2 开启循环后 跳转都是有动画的 你是怎么设置的 比如先跳转到索引几 然后又跳转到索引几 出现没有动画的情况?

我跑的就是demo中的例子,参数没做任何修改,我以为不做任何修改都能有动画了。不过我自己修改Multiple参数之后就可以有动画了,问题已经解决了,谢谢。

已購買 我想問是不是目前不支援scrollbar

是的 目前不支持

目前发现的问题:
1.修改数据长度一样条用total不刷新。
2.初始化时有数据,当数据长度等于0时就报错。

点击x删除
assets\scripts\scrollview-core\super-layout.ts:1302 Uncaught TypeError: Cannot read properties of null (reading ‘width’)
at SuperLayout.pushToFooter (eval at (quick_compile.js:238), :1602:109)
at SuperLayout.refreshItems (eval at (quick_compile.js:238), :1279:26)
at SuperLayout.total (eval at (quick_compile.js:238), :648:14)
at Scrollview1.onClickItem (eval at (quick_compile.js:238), :125:21)
at Scrollview1Item.onClick (eval at (quick_compile.js:238), :74:24)
at cc_ClickEvent.emit (CCComponentEventHandler.js:168)
at Function.emitEvents (CCComponentEventHandler.js:132)
at cc_Button._onTouchEnded (CCButton.js:716)
at EventTarget.285.proto.emit (callbacks-invoker.js:341)
at _doDispatchEvent (CCNode.js:651)

v2.1.4版本已修复 目前正在审核中

楼主,我利用touchMove写一个拖拽地图的功能,想加一个类似scrollView的滚动惯性效果,请问有什么可以实现的办法吗?