cocos2d-x lua 使用ListView

前端之家收集整理的这篇文章主要介绍了cocos2d-x lua 使用ListView前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

cocos2d-x lua 使用ListView

version: cocos2d-x 3.6


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


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

  1. -- //cocos studio 中资源的名字
  2. M.srcLayer = {
  3. ["listView"] = "list_view",["btnFriends"] = "button_friends",["btnAround"] = "button_around",}
  4. M.srcListItem = {
  5. ["bg"] = "image_bg",["img"] = "image_head",["name"] = "lable_name",["meter"] = "lable_meter",}
  6.  
  7. function M:loadLayout()
  8. if self.m_resNode then
  9. self.m_resNode:removeSelf()
  10. self.m_resNode = nil
  11. end
  12. self.m_resNode = cc.CSLoader:createNode("ui/layer_test_listview.csb") -- //load your layout csb
  13. assert(self.m_resNode,string.format("ViewBase:createResourceNode() - load resouce node from file \"%s\" Failed",resourceFilename))
  14. self:addChild(self.m_resNode)
  15.  
  16. local listView = self.m_resNode:getChildByName(M.srcLayer.listView)
  17. end

2. 更新ListView的每一项

  1. function M:refreshListView()
  2. local listView = self.m_resNode:getChildByName(M.srcLayer.listView)
  3. assert(listView,"")
  4. listView:removeAllChildren()
  5.  
  6.  
  7. local friendList = {
  8. {["id"]="1234567890",["name"]="testName",["picture"]="test.png"},{["id"]="1234567890",}
  9. for idx,oneFriend in pairs(friendList) do
  10.  
  11. -- //加载模板项
  12. local oneItem = cc.CSLoader:createNode("ui/layer_test_listview_item.csb")
  13.  
  14. local imgBg = oneItem:getChildByName(M.srcListItem.bg)
  15. local imgHead = oneItem:getChildByName(M.srcListItem.img)
  16. local lableName = oneItem:getChildByName(M.srcListItem.name)
  17. local lableMeter = oneItem:getChildByName(M.srcListItem.meter)
  18. -- //reset
  19. --imgHead:initWithFileName(oneFriend.picture) --//imgHead是精灵类Sprite
  20. lableName:setString(friendInfo.name)
  21. --lableMeter:setString(tostring(oneFriend.meter))
  22.  
  23. --//create layout
  24. local listItemLayout = ccui.Layout:create()
  25. listItemLayout:setContentSize(imgBg:getContentSize())
  26. listItemLayout:addChild(oneItem)
  27. oneItem:setPosition(cc.p(listItemLayout:getContentSize().width / 2.0,listItemLayout:getContentSize().height / 2.0))
  28. listItemLayout:setTag(idx)
  29. listView:insertCustomItem(listItemLayout,0)
  30. end
  31. end

3. 其他

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

猜你在找的Cocos2d-x相关文章