-- 创建背包列表容器函数
---@param parent: 父节点
---@param bagData: 背包数据(从服务端获取)
---@param data: 背包数据表
---@param itemsPerRow: 每行显示几个item_show
---@param totalItems: 总共需要显示多少个item_show
---@param containerDirection: 容器方向 1:垂直 2:水平
---@param padding: 间距
---@param Lis
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-06-28 03:55:46 |
👁️ 阅读: 1
在创建 `item_layout` 后,可以使用 `GUI:setTag()` 函数来设置逻辑标签。这样可以在点击事件中通过 `GUI:getTag(sender)` 获取对应的标签值,方便进行逻辑处理。
以下是修改后的关键代码部分:
```lua
-- 在创建item_layout后设置标签
local item_layout = GUI:Layout_Create(item, "item_clink" .. index, -15, -15, 60, 60)
GUI:Layout_setBackGroundImage(item_layout, tick_imagePath)
GUI:setTouchEnabled(item_layout, true)
GUI:setSwallowTouches(item_layout, false)
-- 设置逻辑标签(使用背包数据的索引作为标签)
GUI:setTag(item_layout, bagData[index].Index)
GUI:addOnClickEvent(item_layout, function()
-- 获取点击的标签值
local tag = GUI:getTag(item_layout)
SL:Print("单击触发---索引:" .. index .. ",标签:" .. tag)
-- 根据标签执行不同的逻辑
if tag == 1001 then
-- 处理特定物品的逻辑
elseif tag == 1002 then
-- 处理另一种物品的逻辑
end
end)
```
**说明:**
1. `GUI:setTag(widget, value)` - 给控件设置一个整数值作为标签
2. `GUI:getTag(widget)` - 获取控件的标签值
3. 标签可以是物品的ID、索引或其他有意义的数值,方便在点击事件中识别具体是哪个物品被点击
**注意:** 在循环中创建多个 `item_layout` 时,确保每个控件的标签值是唯一的,这样才能正确区分不同的物品项。
← 返回问答库