cocos2d lua 列表基本用法 ListView

本文介绍如何使用 Cocos2d-x 的 ListView 组件创建一个具有动态内容扩展功能的列表视图,并展示了如何通过触摸事件来改变列表项的高度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    local listView = ccui.ListView:create()
    listView:setDirection(cc.SCROLLVIEW_DIRECTION_VERTICAL)     -- 设置方向为垂直方向  
    listView:setBounceEnabled(true)                             -- 滑动惯性
    listView:setBackGroundImage("white_bg.png")              -- 背景图片
    listView:setBackGroundImageScale9Enabled(true)              -- 设置背景图片九宫格
    listView:setContentSize(500,400)  
    listView:setPosition(cc.p(display.cx, display.cy)) 
    listView:setAnchorPoint(cc.p(0.5,0.5))
    listView:setItemsMargin(0.1)                                 -- item间距
    -- listView:setScrollBarEnabled(false)                         -- 设置滚动条隐藏
    self:addChild(listView)

    for i = 1, 10 do
        local title ,color
        if i%3 == 1 then
            title = "喵喵喵。。。"
            color = cc.c3b(255, 0, 0)
        elseif i%3 == 2 then
            title = "汪汪汪。。。"  
            color = cc.c3b(0, 255, 0)  
        else 
            title = "哼哧哼哧。。。"
            color = cc.c3b(0, 0, 255)
        end

        local layout = ccui.Layout:create()
        layout:setBackGroundColorType(ccui.LayoutBackGroundColorType.solid)
        layout:setBackGroundColor(color)
        layout:setContentSize(500, 50)
        layout:setAnchorPoint(cc.p(0.5, 0.5))
        
        local btn = self:CreateBtn(title)
        layout:addChild(btn)

        local flag = nil
        btn:addTouchEventListener(function(sender,type)
           
            if type == ccui.TouchEventType.ended then
                  local parent = sender:getParent()
                  if not flag then
                    parent:setContentSize(500,150)
                    sender:pos(250,125)
                  else 
                    parent:setContentSize(500, 50)
                    sender:pos(250,25)
                  end
                  flag = not flag 
                  listView:refreshView()
            end
              end)
          
        -- layout:addTo(listView)
        listView:pushBackCustomItem(layout)
    end

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值