• cocos2d-x lua 使用ListView


    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 类似
  • 相关阅读:
    读取组合单元格
    Spire.XLS:一款Excel处理神器
    linq
    LINQ语句中的.AsEnumerable() 和 .AsQueryable()的区别
    合并单元格
    web sec / ssd / sshd
    linux——cat之查看cpu信息、显示终端、校验内存.............
    MATLAB mcr lib的环境变量书写
    Linux查看库依赖方法
    判断当前所使用python的版本和来源
  • 原文地址:https://www.cnblogs.com/songcf/p/4556920.html
Copyright © 2020-2023  润新知