Cocos2d-x ListView 的添加,删除,点击和滑动到头和尾监听
来源:互联网 发布:淘宝怎么卖话费 编辑:程序博客网 时间:2024/06/03 20:18
void selectedItemEventScrollView(Ref* pSender, cocos2d::ui::ScrollView::EventType type);
----------------------------------------------------------------------------------------------------------------------------------------
ize winSize = CCDirector::getInstance()->getVisibleSize();
Layout* root = Layout::create();
root->setContentSize(Size(500,400));
root->setBackGroundColorType(LAYOUT_COLOR_SOLID);
root->setAnchorPoint(Point(0.5f,0.5f));
root->setPosition(Point(winSize.width/2,winSize.height/2));
this->addChild(root);
std::vector<std::string> _array;
for (int i = 0; i < 20; i++)
{
std::string ccstr = StringUtils::format("ListView_Item_%d",i);
_array.push_back(ccstr);
}
ListView* listView = ListView::create();
listView->setDirection(ui::ScrollView::Direction::HORIZONTAL);//设置水平还是 垂直
listView->setBackGroundImage("green_edit.png");
listView->setBackGroundImageScale9Enabled(true);
listView->setAnchorPoint(Point(0.5f,0.5f));
listView->setContentSize(Size(490,390));
listView->setPosition(Vec2(winSize.width / 2, winSize.height / 2));
listView->addEventListener((ui::ListView::ccListViewCallback)CC_CALLBACK_2(HelloWorld::selectedItemEvent, this));、//添加监听函数
listView->addEventListener((ui::ListView::ccScrollViewCallback)CC_CALLBACK_2(HelloWorld::selectedItemEventScrollView, this));
this->addChild(listView);
//root->addChild(listView);
Sprite* testSprite = Sprite::create("backtotoppressed.png");
testSprite->setPosition(Vec2(200,200));
listView->addChild(testSprite);
// add custom item
ssize_t count = _array.size();
for (int i = 0; i < count / 4; ++i)
{
Button* custom_button = Button::create("button.png", "buttonHighlighted.png");
custom_button->setName("Title Button");
custom_button->setScale9Enabled(true);
custom_button->setContentSize(Size(300,50));
Layout *custom_item = Layout::create();//要通过Layout添加到ListView中
custom_item->setContentSize(custom_button->getContentSize());
custom_button->setPosition(Vec2(custom_item->getContentSize().width / 2.0f, custom_item->getContentSize().height / 2.0f));
custom_item->addChild(custom_button);
listView->addChild(custom_item);
}
//Vector<Widget*>& items = listView->getItems();
//int item_count = items.size();
//CCLOG("liubin---------->%d",item_count);
// insert custom item //插入item
Vector<Widget*>& items = listView->getItems();
ssize_t items_count = items.size();
CCLOG("liubin------111---->%d", items_count);
for (int i = 0; i < count / 4; ++i)
{
Button* custom_button = Button::create("button.png", "buttonHighlighted.png");
custom_button->setName("Title Button");
custom_button->setScale9Enabled(true);
//custom_button->setTitleText(_array[i]);
custom_button->setContentSize(Size(300, 50));
Layout *custom_item = Layout::create();
custom_item->setContentSize(custom_button->getContentSize());
custom_button->setPosition(Vec2(custom_item->getContentSize().width / 2.0f, custom_item->getContentSize().height / 2.0f));
custom_item->addChild(custom_button);
custom_item->setTag(1);
listView->insertCustomItem(custom_item, items_count);
}
//Vector<Widget*>& itemss = listView->getItems();
//int iiii = itemss.size();
//CCLOG("liubin------222---->%d",iiii);
int itemSize = listView->getItems().size();
for (size_t i = 0; i < itemSize; i++)
{
Widget* item = listView->getItem(i);//获取其中的某个项,然后转换成Button 进行设置操作
Button* button = static_cast<Button*>(item->getChildByName("Title Button"));
ssize_t index = listView->getIndex(item);
button->setTitleText(_array[i]);
}
listView->removeChildByTag(1);//删除最后一个
listView->removeItem(2);//删除指定项
listView->setGravity(ListView::Gravity::CENTER_VERTICAL);
listView->setItemsMargin(15.0f);//设置listView间距
void HelloWorld::selectedItemEvent(Ref* pSender, cocos2d::ui::ListView::EventType type)
{
switch (type)
{
case cocos2d::ui::ListView::EventType::ON_SELECTED_ITEM_START:
{
ListView* listView = static_cast<ListView*>(pSender);
CC_UNUSED_PARAM(listView);
CCLOG("select child start index = %ld", listView->getCurSelectedIndex());
break;
}
case cocos2d::ui::ListView::EventType::ON_SELECTED_ITEM_END:
{
ListView* listView = static_cast<ListView*>(pSender);
CC_UNUSED_PARAM(listView);
CCLOG("select child end index = %ld", listView->getCurSelectedIndex());
break;
}
default:
break;
}
}
void HelloWorld::selectedItemEventScrollView(Ref* pSender, ui::ScrollView::EventType type)
{
switch (type) {
case ui::ScrollView::EventType::SCROLL_TO_BOTTOM://滑动到底部
CCLOG("SCROLL_TO_BOTTOM");
break;
case ui::ScrollView::EventType::SCROLL_TO_TOP://滑动到头部
CCLOG("SCROLL_TO_TOP");
break;
default:
break;
}
}
- Cocos2d-x ListView 的添加,删除,点击和滑动到头和尾监听
- Cocos2d-x ListView 的添加,删除,点击和滑动到头和尾监听
- 安卓 listView的点击监听和滑动监听 setOnScrollListener setOnTouchListener
- ListView和RecyclerView去掉滚动条和滑动到头的阴影
- listview的滑动监听和多类型item
- cocos2d-x精灵的添加和移动
- RecyclerView实现滑动和删除事件的监听方法
- 基于ListView的滑动删除、添加、修改
- DrawerLayout的使用 侧滑加载Listview,首页使用Fragment和处理点击触摸冲突、穿透事件和监听菜单滑动状态的改变的详细介绍
- ListView的滑动监听
- android之listview点击监听和长按监听的实现和区分
- Notification的滑动清除和点击删除事件
- ListView中添加Button后,Button的点击事件和ListView的点击事件冲突
- ListView中添加Button后,Button的点击事件和ListView的点击事件冲突
- ListView中添加Button后,Button的点击事件和ListView的点击事件冲突
- ListView中添加Button后,Button的点击事件和ListView的点击事件冲突
- 去掉ListView滑动的黑色背景和点击ListView某个item的橙黄色背景
- android listview滑动删除,实现item的点击缩回
- BASE64加解密实现方法
- Android学习心得第一课
- 背包的第k优解问题
- iOS 开发 -- Swift 语法篇 (一) 常量和变量
- Memcached
- Cocos2d-x ListView 的添加,删除,点击和滑动到头和尾监听
- 信号量——POSIX 与 System V的接口对比分析
- vs2015 + BabeLua + Cocos2d-x 3.10配置
- 2016年阅读书单(一)
- 数据结构常用树的基本总结
- HDU 5630 Rikka with Chess
- CodeForces 282E Sausage Maximization
- Leetcode Odd Even Linked List
- 理解C语言——从小菜到大神的晋级之路(10)——结构体、联合体