Comments (9)
TS真没办法,必须要给Item挂载ListItem.js才行。因为ts不能随意给Node赋值变量,但Item-Node必须要记录一个_listId,所以...只能这样了。这一点我忘记在说明文档里写了,感谢感谢。
from cocoscreator-list.
使用时还发现两个问题
- 如果上下滑动有惯性回弹当滑出scollview的范围且进入其他scrollview后,没法自动回弹
- 对于高度不同的item,需要设置customSize才能控制,这样有两个问题,一个是item很难立刻就知道height比如Label之类的动态高度,二是如果item数量是变动的,比如满了30个就删除第一个,那么依赖索引设置不同高度的customSize所有的索引都需要重新设置一下,不知道能否能自动识别item的高度
from cocoscreator-list.
- 我无法重现,可以通过度盘啥的提供个Demo给我~
“不知道能否能自动识别item的高度”
,目前不能,我还想不到有效的方法。论坛里也有其他人说可以让所有Item都全部渲染一遍,以此获取所有的高度数据,可这样就本末倒置了,最初的目的就是要只渲染可视范围内的Item,降低DC
。如果有好的方法,我肯定会更新这个组件的,毕竟这个组件我自己也在用。关于Label的动态高度
,你设置了label.string = "xxxxxxxxxxxxx";
之后,再执行一下label._updateRenderData(true);
,这样就能立即渲染Label取得高度。
from cocoscreator-list.
1是我在pc上试的,直接鼠标往上拉,如果同一个界面上有两个scollview,你让鼠标进入另一个scollview的范围,然后松鼠标,应该不会反弹,我没仔细验证
2的话既然有ListItem,可以利用起来指定某个node来决定这个item的宽度和高度,在render里就能获取其宽高做设置,现在Label和RichText好像赋值后宽高就计算出来了,不用再调用其他,当然,这只是临时想到的一种方案,不知道是否可行,目前的控件也可以在Render里把宽高的对象传递进去赋值,等渲染到最后一个之后再给customeSize和numitems赋值再渲染一遍,反正比较蹩脚,只能满足部分特定使用情况,控制不当还会陷入渲染的死循环
from cocoscreator-list.
你可以在设置list.numItems
之前,调用一下list.calcCustomSize(number)
这个接口。这个函数会用单个Item重复回调Render函数
取得宽/高。这只是个实验函数,我是不推荐使用的,但这的确能省去很多事。(如果你的item里有文本组件
或者Layout
组件,请确保他们在Render函数
中是立即自适应的。)
from cocoscreator-list.
我之前用的那个场景类似于聊天,新增一条消息后先设置list.numItems来加入这条消息,这个时候会自动调用所有的item的Render走一遍,我是在Render函数里判断,走到最后一个Render时再设置list.customSize,然后再设置一遍list.numItems再走一遍渲染(会加个标记,走完后不会再次进这个循环),然后scrollTo拉到底,由于是在Render的时候调整对话框大小,所有刚加入时会闪一下未调整之前的错误展示,感觉可以通过item显隐来控制下
不知道对类似微信的聊天框有啥好建议
from cocoscreator-list.
我在Demo中新增了一个聊天列表的示例场景,可以去看一下。
from cocoscreator-list.
现在TS版已经取消强制挂载ListItem了
from cocoscreator-list.
赞,感觉这个组件持续优化下去官方迟早得转正:)
from cocoscreator-list.
Related Issues (20)
- scrollTo循环列表往回滚的问题 HOT 1
- 能加个license吗?感谢
- 设置边距后出问题
- 背包示例一次性翻页太多,底部页数没有及时更新 HOT 1
- 请问一下多选不能一次性获得当前选择的数据么? HOT 2
- 动效删除最后几个item时,该item后面的item上移的动画有点奇怪,像是瞬移上去覆盖原有的
- Page滑动模式问题 HOT 1
- aniDelItem 没有判断 callFunc为空的情况 HOT 1
- 分页模式能和循环列表共存就好了 HOT 1
- 整个List设置active=false,然后再设置active=true,item都看不到了。看FPS应该是加载出来了,但是位置不对 HOT 3
- 2个不同TemplateItem 能在一个list 吗 HOT 1
- 大佬可以出一个针对pageview的虚拟和循环支持吗
- 给scrollview上挂一个widget自动适配大小 显示有问题
- 在虚拟列表模式下,ListItem 开启自适应尺寸,使用scrollTo滚动到指定项会导致滚动内容出现错乱 HOT 1
- 大佬适配下cocos creator v3.4.0呀,list渲染过scrollView的高度就不显示Item了 HOT 1
- 是不是list跟listitem不同,就要复制几份不同的脚本
- 3.6.1更新一波吧
- listItem 开启自适应,如果 listItem 宽高尺寸发生变化后再变回原尺寸,listItem 就无法自适应了 HOT 8
- 如果Item上面有cc.Widget,这个地方应该用false判断才对
- 在微信小游戏环境中滚动会报错
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cocoscreator-list.