Egret社区
本帖最后由 角木蛟 于 2021-2-6 14:45 编辑

具体情况如下:项目需求中要创建一个list滚动列表,列表子项有非常多个,然后按照一定需求,打开列表时同时要求滚动到一个指定位置或者滚动到底部。遇到的问题:就在于,当执行滚动后,显示列表中会将所有的子项都创建出来,让本就不多的系统资源雪上加霜!
个人层面的挣扎:有尝试不执行validate函数,而是直接给scrollV赋值,这样一来也确实就只创建出滚动区域内的子项了,但是却也不再滚动到具体的子项上来了。
最后请问大家,有没有两全其美的办法啊!!!





分享到 :
0 人收藏

5 个回复

倒序浏览
app小王子  社区管理员 | 2021-2-7 10:54:57
useVirtualLayout 大数据优化  这个属性了解一下。https://docs.egret.com/uieditor/docs/EUI/dataCollection/dataGroup
角木蛟  登堂入室 | 2021-2-7 11:24:18
本帖最后由 角木蛟 于 2021-2-7 14:48 编辑
app小王子 发表于 2021-2-7 10:54
useVirtualLayout 大数据优化  这个属性了解一下。https://docs.egret.com/uieditor/docs/EUI/dataCollecti ...

这些都试过的,仍然会创建出全部的item实例。useVirtualLayout 这个值一直都设置的是true。
角木蛟  登堂入室 | 2021-2-7 11:31:45
本帖最后由 角木蛟 于 2021-2-7 14:47 编辑

说一个当前的解决办法:
首先,我已经使用过虚拟布局啊什么的,但是仍然是老样子。同时说明下我的scroller.viewport直接就是list,中间没有额外的group。
再次说一下我的方法:只需要执行这个函数就可以了
_set_focalPoint = function(){
App.tm.callLater(__this__, ()=>{
        let __this__ = this;
        let ss = 0;// 计算得出的应该滚动的V值。
        egret.Tween.get(__this__.list).to({scrollV: ss}, 100).call(()=>{
                egret.Tween.removeTweens(__this__.list);
        })
});
}
l1076952234  登堂入室 | 2021-2-7 16:37:04
兄弟,加个延时就行了
app小王子  社区管理员 | 2021-2-8 10:16:16
l1076952234 发表于 2021-2-7 16:37
兄弟,加个延时就行了

可以这个这个开发者说的方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部