学过安卓的同学。对listview是很熟悉的。主要是用来展示一条条的格式相同的信息。
cocos2d既然是作为游戏引擎。就会有很多地方涉及到listview。比如说是商城。排名。
listivew在cocos2d中有自己的实现方法。总的来说是要比安卓中简单的。
分为如下几步
1创建一个listview
auto lv = listview::create();
2设置它的适配器。cocos2d中没有像安卓中的adpter一样。用布局xml的方式来做。但其实是一个意思
首先要定义一个布局。和安卓中的xml一个意思。表现形式不同而已
auto layout = Layout::create();
有了布局就可以往里面放东西了。button。imageview。label之类的统统可以 。当然不放东西也是可以的
这里就只是定义一个布局。然后设置背景
layout->setbalckgroupimageview("图片路径");
3将设置好的布局添加到listview中。一般用for循环来实现。看到这里。感觉很有android的影子。
for(int i=0;i<10;i++)
{
auto layout = Layout::create();
lv->addchile(layout);
}
其实是和适配器一个道理。适配器只是把这些数据都装在一个list中。cocos是用一个layout来装里面的控件。并且立即为其填充数据。当然你也可以将数据先以数组的形式保存好。然后就可以在for循环中以此做数据的填充了。
最后贴上完整的代码。其中的资源自己替换为自己的图片