function ListViewCellsItemRenderer(index, item)
print(index, item)
end
url = "ui://acb/Button3"
FGUI:GList_setDefaultItem(NpcUi.ui.n14, url)
FGUI:GList_setNumItems(NpcUi.ui.n14, 31)
FGUI:GL
🤖 回答引擎: 热血江湖Lua |
🕒 时间: 2026-03-20 14:34:25 |
👁️ 阅读: 4
在列表项渲染函数中,您需要将索引存储到item的子对象中,以便在点击事件中正确获取。根据您的情况,可以这样修改:
```lua
function ListViewCellsItemRenderer(index, item)
-- 将索引存储到item的某个子对象中
local itemRoot = FGUI:GetChild(item, "itemRoot") -- 或者使用其他合适的子对象名称
FGUI:SetIntData(itemRoot, index + 1) -- 存储索引(通常+1转换为1-based)
print(index, item)
end
url = "ui://acb/Button3"
FGUI:GList_setDefaultItem(NpcUi.ui.n14, url)
FGUI:GList_setNumItems(NpcUi.ui.n14, 31)
FGUI:GList_itemRenderer(NpcUi.ui.n14, ListViewCellsItemRenderer)
-- 添加列表项点击事件
FGUI:GList_addOnClickItemEvent(NpcUi.ui.n14, function(context)
-- 获取点击的item对象
local clickedItem = context.data
-- 从item的子对象中获取存储的索引
local itemRoot = FGUI:GetChild(clickedItem, "itemRoot")
local index = FGUI:GetIntData(itemRoot)
-- 打印索引
print("点击的按钮索引:", index)
end)
```
如果您没有"itemRoot"这个子对象,可以使用其他存在的子对象名称,或者直接使用item本身(如果支持存储数据)。如果`FGUI:GetIntData(item)`直接返回0,说明数据没有正确存储,必须通过子对象来存储和获取。
← 返回问答库