在本篇博客中,我们将简要分析一下ListView和ScrollView之间的关系,如何正确使用两个控件进行设计,目前CocosStudio对两个控件的支持状况等。
一、ListView和ScrollView的一些思考
1. 两者联系:
首先,我们要知道ListView是继承自ScrollView的,也就是说,ListView在ScrollView的基础上,对一些细节功能进行了细化。ScrollView有的方法,ListView都有,而ListView有的,ScrollView未必有。
官方的JS-Tests中对二者的展示也几乎相同,都是展示了竖向和横向滑动的列表样式。但是,我们要知道ScrollView是可以同时实现竖向和横向滑动的。
2. 两者区别:
滑动方向不同:
ScrollView可以实现四个方向的滑动,但是ListView只能实现竖向或横向滑动。对其中陈列的控件的监听精度不同:
ListView往往能够精确到某一个Item被选择了,而ScrollView却没有提供这方面的便捷方案。所以,从这点也可以看出ListView更加适合用在列表信息展示上,官网的示例中也确实是这么做的。而,ScrollView更加适合用在“大地图”的展示,通过玩家窗口的移动来查看整张地图的内容。CocosStudio的支持程度不同:
其实,这个是很让我惊讶的。目前来说,CocosStudio对ListView的支持并不健全,如下图所示:
你会发现,好多控件都无法进行添加。虽然,这给开发者带来了很大不便。(希望官网早点支持更多控件的添加啊。。。)但是,我们退一步想想。其实ListView主要用于列表内容的展示,大概也就是展示展示图片,文字,最多再加上按钮。我想应该能够满足大多数开发者的普通要求了。但是,如果你打算在CocosStudio中做出一个放置好布局的Item,然后在IDE中获取之后,clone,然后修改其中一些小细节,就可以一生百,百生千。额,那你就想简单了。你可以尝试一下,在CocosStudio中,你对一个Item制作好布局之后,导入IDE之后是乱的!!!并不是你在CocosStudio中设置好的布局。也不知道是不是我操作姿势不对,反正我不行,如果你行,期待着你分享你布局的正确姿势。这个如果是Bug的话,也希望官网尽早修复吧。
相对来说,ScrollView就开放多了,随便你怎么拖,都可以。无论什么控件,我都可以接受。
二、最后的说明
其实,ListView中貌似是可以添加自定义控件的,但是据一位网友反映,貌似只能在代码中自定义,而且要继承Widget,这样操作之后,貌似SelectedItem会判断不了,还要自己进行判断,由于具体没有操作,也就不太明了了。 由于本系列教程主要介绍在CocosStudio中制作完控件之后,在IDE中如何获取。而ListView貌似不能在CocosStudio中进行相应的详细设计,只能在代码中实现,所以,我们在这里就不贴代码了。而ScrollView的功能几乎在CocosStudio设计中就可以实现了,几乎不需要代码进行进一步设计。我们在这里也不详细介绍了。 后期,如果觉得如何在代码中制作ListView和操作ScrollView有必要的话,我们再单独拿出一篇来详细讲讲如何操作的问题。