基础理论

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学习笔记的更多相关文章

  1. cocos代码研究(24)Widget子类PageView学习笔记

    理论基础 PageView类又称Layout的管理器,可以让用户在多个Layout之间左右或者上下切换显示,继承自 Layout . 代码实践 static PageView * create ()创 ...

  2. cocos代码研究(1)Node学习笔记

    理论部分 Node类继承自Ref类,是cocos框架中基础底层的一个封装类,与画面渲染相关的类一般都是继承自该类,例如Scene,Layer,Sprite,Sprite3D,Label,SpriteB ...

  3. cocos代码研究(5)Action学习笔记

    理论部分 Action类也是cocos核心基础类之一,在游戏中起着非常重要的作用,继承自Ref,被 FiniteTimeAction(有限时间动作), Follow , 以及 Speed 继承. 有限 ...

  4. cocos代码研究(2)Label学习笔记

    理论部分 Label类继承自Node类,中文翻译文字与字体,通常在应用开发中为模块作为提示和描述的作用,主要有3中不同的创建方式. 1.通过ttf字体包创建,通过指定本地已有的ttf格式的字体文件,创 ...

  5. cocos代码研究(1)sprite学习笔记

    各种方法创建Sprite和Animate //图片创建法 参数一:图片资源路径 参数二:Rect选区 auto sprite = Sprite::create(, )); addChild(sprit ...

  6. cocos代码研究(2)Layer学习笔记

    auto layer = Layer::create(); /*************华丽分割线*************/ auto layer = LayerColor::create(Colo ...

  7. cocos代码研究(22)Widget子类Layout学习笔记

    理论基础 一个包含控件的容器. 子节点可以根据布局类型重新排序,它还可以开启剪裁,设置背景图像和颜色.继承自Widget,以及LayoutProtocol. 被 HBox, PageView, Rel ...

  8. cocos代码研究(17)Widget子类RadioButtonGroup学习笔记

    理论基础 RadioButtonGroup可以把指定的单选按钮组织起来, 形成一个组, 使它们彼此交互. 在一个RadioButtonGroup, 有且只有一个或者没有RadioButton可以处于被 ...

  9. cocos代码研究(16)Widget子类RadioButton学习笔记

    理论基础 RadioButton是一种特定类型的两状态按钮,它与复选框相似.它可以 和RadioButtonGroup一起使用,形成一个"组".继承自AbstractCheckBu ...

随机推荐

  1. 零基础的人怎么学习Java

    编程语言Java,已经21岁了.从1995年诞生以来,就一直活跃于企业中,名企应用天猫,百度,知乎......都是Java语言编写,就连现在使用广泛的XMind也是Java编写的.Java应用的广泛已 ...

  2. ios开发之--使用toolbar调整item之间的间隔

    toolbar的item有很多种样式,其实经常使用的就几种, UIBarButtonSystemItemFixedSpace 木棍:可以理解为固定的长度 UIBarButtonSystemItemFl ...

  3. oracle SUM函数

    select change_type as change_type, sum(points1) as points from (select DECODE(p.change_type, , ' 兑换商 ...

  4. discuz 文档说明

    Discuz  文档说明 基于7.0的标准程序,部分与插件无关的文件不作说明 文件颜色说明: 红色:程序核心文件,修改这类文件时千万要注意安全! 橙色:做插件几乎不会用到的文件,大概了解功能就可以了, ...

  5. __declspec的用法

    __declspec用于指定所给定类型的实例与Microsoft相关的存储方式.其它的有关存储方式的修饰符如static与extern等是C和C++语言的ANSI规范,而__declspec是一种扩展 ...

  6. iOS - 布局重绘机制相关方法的研究

    iOS View布局重绘机制相关方法 布局 - (void)layoutSubviews - (void)layoutIfNeeded- (void)setNeedsLayout —————————— ...

  7. nested exception is org.springframework.beans.factory.BeanCreationException: 不能注入对象 创建对象失败 spring

    [出现错误的背景] 在使用Spring+SpringMVC+Mybatis SSM集成框架时,服务器启动就会报错. [错误根源] XML配置错误. [解决方案] 第一步.查找springmvc.xml ...

  8. CSS美化自己的完美网页

    CSS美化自己的完美网页   CSS概述 css样式: css是英文Cascading Style Sheets的缩写,称为层叠样式表,用于对页面进行美化,CSS的可以使页面更加的美观.基本上所有的h ...

  9. delphi 获取网卡信息(支持多网卡)

    delphi 获取网卡信息(支持多网卡) unit LGetAdapterInfo; interface uses Windows, SysUtils, Classes; const MAX_HOST ...

  10. COGS 1224. [SHOI2002]百事世界杯之旅(期望概率)

    COGS 1224. [SHOI2002]百事世界杯之旅 ★   输入文件:pepsi.in   输出文件:pepsi.out   简单对比 时间限制:1 s   内存限制:128 MB [问题描述] ...