cocos2d-x lua 使用ListView

version: cocos2d-x 3.6


本文主要讲述:使用Cocos Studio创建ListView,和列表项的模板,代码中通过模板创建列表的每一项,并替换其中的图片文字等。


1. 加载Cocos Studio编辑好的资源

-- //cocos studio 中资源的名字
M.srcLayer = {
["listView"] = "list_view",
["btnFriends"] = "button_friends",
["btnAround"] = "button_around",
}
M.srcListItem = {
["bg"] = "image_bg",
["img"] = "image_head",
["name"] = "lable_name",
["meter"] = "lable_meter",
} function M:loadLayout()
if self.m_resNode then
self.m_resNode:removeSelf()
self.m_resNode = nil
end
self.m_resNode = cc.CSLoader:createNode("ui/layer_test_listview.csb") -- //load your layout csb
assert(self.m_resNode, string.format("ViewBase:createResourceNode() - load resouce node from file \"%s\" failed", resourceFilename))
self:addChild(self.m_resNode) local listView = self.m_resNode:getChildByName(M.srcLayer.listView)
end

2. 更新ListView的每一项

function M:refreshListView()
local listView = self.m_resNode:getChildByName(M.srcLayer.listView)
assert(listView,"")
listView:removeAllChildren() local friendList = {
{["id"]="1234567890", ["name"]="testName", ["picture"]="test.png"},
{["id"]="1234567890", ["name"]="testName", ["picture"]="test.png"},
{["id"]="1234567890", ["name"]="testName", ["picture"]="test.png"},
{["id"]="1234567890", ["name"]="testName", ["picture"]="test.png"},
}
for idx, oneFriend in pairs(friendList) do -- //加载模板项
local oneItem = cc.CSLoader:createNode("ui/layer_test_listview_item.csb") local imgBg = oneItem:getChildByName(M.srcListItem.bg)
local imgHead = oneItem:getChildByName(M.srcListItem.img)
local lableName = oneItem:getChildByName(M.srcListItem.name)
local lableMeter = oneItem:getChildByName(M.srcListItem.meter)
-- //reset
--imgHead:initWithFileName(oneFriend.picture) --//imgHead是精灵类Sprite
lableName:setString(friendInfo.name)
--lableMeter:setString(tostring(oneFriend.meter)) --//create layout
local listItemLayout = ccui.Layout:create()
listItemLayout:setContentSize(imgBg:getContentSize())
listItemLayout:addChild(oneItem)
oneItem:setPosition(cc.p(listItemLayout:getContentSize().width / 2.0, listItemLayout:getContentSize().height / 2.0))
listItemLayout:setTag(idx)
listView:insertCustomItem(listItemLayout, 0)
end
end

3. 其他

  • 如果想在代码里面创建listview和它的每一个列表项,可直接参照lua test里面的代码
  • 注意编辑cocos studio资源的时候不要去拖动每一个空间的4个顶点去缩放它
  • 使用page view 和 table view 类似

cocos2d-x lua 使用ListView的更多相关文章

  1. 采用cocos2d-x lua 的listview 实现pageview的翻页效果之上下翻页效果

    --翻页滚动效果local function fnScrollViewScrolling( sender,eventType)    -- body    if eventType == 10 the ...

  2. lua 创建listview

    只要是新的聊天对象就创建一个新的listview local name = tolua.cast(UIHelper:seekWidgetByName(self.nameItem, "name ...

  3. 使用cocos2d脚本生成lua绑定

    这几天要老大要求把DragonBones移到cocos2dx 3.0 里边,并且绑定lua使用接口.因为刚学lua,使用的引擎也刚从2.2改为3.0,各种不熟悉,折腾了好几天才弄完,有空了总结一下 这 ...

  4. 《Cocos2d-x实战 Lua卷》上线了

    感谢大家一直以来的支持!各大商店均开始销售:京东:http://item.jd.com/11659697.html当当:http://product.dangdang.com/23659810.htm ...

  5. 【转】cocos2d-x Lua

    Call custom c++ from Lua cocos2d-x lua binds c++ class, class functions ,enum and some global functi ...

  6. Cocos2d-x3.0下一个 Lua与C++打电话给对方

    这里谈下Lua与C++如何实现相互通话 原来的连接:http://blog.csdn.net/qqmcy/article/details/26052771 DJLCData.h 实现类 // // D ...

  7. cocos2dx 3.3 C++工程添加lua支持

    准备工作: 1. 拷贝cocos2d-x-3.3rc0\external\lua整个文件夹到项目中(如myProject\cocos2d\external\lua) 2. 拷贝cocos2d-x-3. ...

  8. xcode 运行 lua版本崩溃 解决方案

    问题描述:运行到LuaStack::init() 崩溃 原因: luajit不支持arm64 解决方案:编译luajit64位静态库 a.可以直接下载别人编译好的库,然后直接覆盖cocos2d\ext ...

  9. 游戏人生(一),我的lua之旅:那些坑爹的CCBReaderLoad

    首先,我们说说这个CCBReaderLoad. 这个脚本是cocos2dx自带的一个lua+cocosbuilder 的工具,详细功能呐,往下看. 先来看下我遇到的一个问题: ----美工给了我一个. ...

随机推荐

  1. global & nonlocal

    name = "A" def test(): name = "B" def test2(): global name # global 指的是拿到的是全局的变量 ...

  2. Telnet连接Win7系统被拒绝的原因及解决方法

    有时要与计算机进行远程连接,会用到telnet.win7中telnet默认是没有开启的,所以这时连接会连接失败,其失败提示如下: 正在连接192.168.100.103...无法打开到主机的连接. 在 ...

  3. How Tomcat Works(四)

    Servlet容器有两个主要的模块,即连接器(connector)与容器(container),本文接下来创建一个连接器来增强前面文章中的应用程序的功能,以一种更优雅的方式来创建request对象和r ...

  4. jsp转发action的问题找不到acton

    -----------------------------jsp转发action的问题找不到acton------------------------------------------- jsp: ...

  5. C#实现XML文件数据库存储

    C#实现文件数据库 http://www.cnblogs.com/gaochundong/archive/2013/04/24/csharp_file_database.html#3100076 应用 ...

  6. Codeforces Round #338 (Div. 2) B. Longtail Hedgehog dp

    B. Longtail Hedgehog 题目连接: http://www.codeforces.com/contest/615/problem/B Description This Christma ...

  7. C#中使用SQLite数据库简介(上)

    [SQLite数据库] SQLite是一个开源的轻量级的桌面型数据库,它将几乎所有数据库要素(包括定义.表.索引和数据本身)都保存在一个单一的文件中.SQLite用C编写实现,它在内存消耗.文件体积. ...

  8. 绝对好文:.NET程序性能的基本要领

    Bill Chiles(Roslyn编译器的程序经理)写了一篇文章<Essential Performance Facts and .NET Framework Tips>,知名博主寒江独 ...

  9. 【JavaScript】前端开发框架三剑客—AngularJS VS. Backone.js VS.Ember.js

    摘要:透过对Github,StackOverflow,YouTube等社区进行数据收集后可知,AngularJS在各大主流社区中都是最受欢迎的,Backbone.js与Ember.js则不相伯仲.本文 ...

  10. 【JavsScript】作用域链

    阿里巴巴广招前端.Java.测试.算法人才,只要你有一技之长,精通于某项领域,无学历要求,都可以来试试,有兴趣的联系luyong.sunly@alibaba-inc.com