cocos代码研究(25)Widget子类PageView学习笔记
基础理论
ListView控件是一个显示滚动项目列表的视图组。 列表项是通过使用addChild或insertDefaultItem插入到列表中的,继承自ScrollView。
代码实践
static ListView * create()
创建一个空ListView。
void setItemModel (Widget *model)
设定一个ListView的模型。 当调用pushBackDefaultItem,该模型将作为一个蓝图,新副本将被插入到ListView控件。
void pushBackDefaultItem ()
插入一个默认项(通过克隆模式创建)到ListView的尾部。
void insertDefaultItem (ssize_t index)
插入一个默认项(通过克隆模式创建)到ListView的指定位置。
void pushBackCustomItem (Widget *item)
插入一个自定义项到ListView的尾部。
void insertCustomItem (Widget *item, ssize_t index)
插入自定义窗口小控件到ListView中指定索引处。
void removeLastItem ()
删除ListView最后一个项目
void removeItem (ssize_t index)
在给定索引处删除一个项目
void removeAllItems ()
删除当前ListView中的所有项目。
Widget * getItem (ssize_t index) const
返回一个给定的索引处的项目。
Vector< Widget * > & getItems ()
返回ListView中的所有项目。
ssize_t getIndex (Widget *item) const
返回指定窗口小控件的索引。
void setGravity (Gravity gravity)
设置的ListView引力。
void setItemsMargin (float margin)
设置ListView中每一项之间的边距。
float getItemsMargin () const
查询ListView每个项之间的边距。
ssize_t getCurSelectedIndex () const
查询当前选中控件的索引。
void addEventListenerListView (Ref *target, SEL_ListViewEvent selector)
添加ListView点击事件的回调,ListView中的一个项目被点击将会调用回调函数。
void addEventListener (const ccListViewCallback &callback)
添加ListView点击事件的回调,ListView中的一个项目被点击将会调用回调函数。
void requestRefreshView ()
手动刷新view和ListView的布局。 该方法将列表视图内容标记为dirty,内容视图将在下一帧刷新。
void refreshView ()
更新ListView的视图。
实例:
// Create the list view ex
ListView* listView = ListView::create();
// set list view ex direction
listView->setDirection(ui::ScrollView::Direction::HORIZONTAL);
listView->setTouchEnabled(true);
listView->setBounceEnabled(true);
listView->setBackGroundImage("cocosui/green_edit.png");
listView->setBackGroundImageScale9Enabled(true);
listView->setContentSize(Size(, ));
listView->setPosition(Vec2((widgetSize.width - backgroundSize.width) / 2.0f +
(backgroundSize.width - listView->getContentSize().width) / 2.0f,
(widgetSize.height - backgroundSize.height) / 2.0f +
(backgroundSize.height - listView->getContentSize().height) / 2.0f));
listView->addEventListener((ui::ListView::ccListViewCallback)CC_CALLBACK_2(UIListViewTest_Horizontal::selectedItemEvent, this));
listView->setScrollBarPositionFromCorner(Vec2(, ));
_uiLayer->addChild(listView); // add custom item
for (int i = ; i < count / ; ++i)
{
Button* custom_button = Button::create("cocosui/button.png", "cocosui/buttonHighlighted.png");
custom_button->setName("Title Button");
custom_button->setScale9Enabled(true);
custom_button->setContentSize(default_button->getContentSize()); 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); listView->pushBackCustomItem(custom_item);
}
cocos代码研究(25)Widget子类PageView学习笔记的更多相关文章
- cocos代码研究(24)Widget子类PageView学习笔记
理论基础 PageView类又称Layout的管理器,可以让用户在多个Layout之间左右或者上下切换显示,继承自 Layout . 代码实践 static PageView * create ()创 ...
- cocos代码研究(1)Node学习笔记
理论部分 Node类继承自Ref类,是cocos框架中基础底层的一个封装类,与画面渲染相关的类一般都是继承自该类,例如Scene,Layer,Sprite,Sprite3D,Label,SpriteB ...
- cocos代码研究(5)Action学习笔记
理论部分 Action类也是cocos核心基础类之一,在游戏中起着非常重要的作用,继承自Ref,被 FiniteTimeAction(有限时间动作), Follow , 以及 Speed 继承. 有限 ...
- cocos代码研究(2)Label学习笔记
理论部分 Label类继承自Node类,中文翻译文字与字体,通常在应用开发中为模块作为提示和描述的作用,主要有3中不同的创建方式. 1.通过ttf字体包创建,通过指定本地已有的ttf格式的字体文件,创 ...
- cocos代码研究(1)sprite学习笔记
各种方法创建Sprite和Animate //图片创建法 参数一:图片资源路径 参数二:Rect选区 auto sprite = Sprite::create(, )); addChild(sprit ...
- cocos代码研究(2)Layer学习笔记
auto layer = Layer::create(); /*************华丽分割线*************/ auto layer = LayerColor::create(Colo ...
- cocos代码研究(22)Widget子类Layout学习笔记
理论基础 一个包含控件的容器. 子节点可以根据布局类型重新排序,它还可以开启剪裁,设置背景图像和颜色.继承自Widget,以及LayoutProtocol. 被 HBox, PageView, Rel ...
- cocos代码研究(17)Widget子类RadioButtonGroup学习笔记
理论基础 RadioButtonGroup可以把指定的单选按钮组织起来, 形成一个组, 使它们彼此交互. 在一个RadioButtonGroup, 有且只有一个或者没有RadioButton可以处于被 ...
- cocos代码研究(16)Widget子类RadioButton学习笔记
理论基础 RadioButton是一种特定类型的两状态按钮,它与复选框相似.它可以 和RadioButtonGroup一起使用,形成一个"组".继承自AbstractCheckBu ...
随机推荐
- 安装DatabaseLibrary
Using pip pip install robotframework-databaselibrary From Source Download source from https://github ...
- Zookeeper(一)-- 简介以及单机部署和集群部署
一.分布式系统 由多个计算机组成解决同一个问题的系统,提高业务的并发,解决高并发问题. 二.分布式环境下常见问题 1.节点失效 2.配置信息的创建及更新 3.分布式锁 三.Zookeeper 1.定义 ...
- remove()
remove() 用于从列表中删除指定的元素 In [35]: l = ['a', 'b', 'c'] In [36]: l.remove('b') In [37]: l Out[37]: ['a', ...
- Mysql全文搜索match against的用法
全文检索在 MySQL 中就是一个 FULLTEXT 类型索引.FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREATE ...
- JS-制作留言提交系统(支持ctrl+回车)
弹出键值说明: //console.log(ev.keyCode)//回车:13//ctrl:17 <!DOCTYPE html> <html> <head> &l ...
- JS:“分享到”之类的悬浮框的运动原理(代码)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- js判断手机型号
由于oppo手机自带浏览器的高度底部多了144px导航栏 所以:专门针对oppo手机做适配: var dowphone = document.getElementById("dowphone ...
- centos7上开启单用户模式
author: headsen chen date : 2018-08-02 11:23:16 1,在出现centos7的页面的时候,按 e进入到编译内核的界面 2,找到下面的这一段,将ro 该车 ...
- 新浪通过API分享 实践
注:如果集成了百度的Frontia和SinaCoreSDK, 那么SSO会出现包冲突 https://github.com/sinaweibosdk/weibo_android_sdk/issues/ ...
- 170808、生成为CVS文件
/** * Desc : 生成为CVS文件 * User : RICK * @param data 源数据List * @param map csv文件的列表头map * @param outPutP ...