在996引擎中,获取通过GUI工具创建的ListView对象,主要有以下几种方法:
## 方法一:通过ID获取(最常用)
```lua
-- 假设在GUI工具中创建了ID为"listView_equip"的ListView
local listView = GUI:getChildByName(parentNode, "listView_equip")
if not GUI:Win_IsNull(listView) then
SL:print("成功获取到ListView对象")
end
```
## 方法二:通过父节点遍历
```lua
-- 如果知道父节点,可以获取所有子控件
local children = GUI:getChildren(parentNode)
for i = 1, #children do
local child = children[i]
local name = GUI:getWidgetName(child)
if name == "listView_equip" then
local listView = child
break
end
end
```
## 方法三:使用ui_delegate函数(批量获取)
```lua
-- 获取父节点下所有控件的快捷引用
local ui = GUI:ui_delegate(parentNode)
if ui and ui.listView_equip then
local listView = ui.listView_equip
-- 现在可以直接操作listView了
GUI:ListView_doLayout(listView)
end
```
## 完整示例:
```lua
-- 先创建父节点
local parent = GUI:Win_Create("GMMain", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 假设GUI工具创建了listView_equip
local listView = GUI:getChildByName(parent, "listView_equip")
if GUI:Win_IsNull(listView) then
SL:print("错误:未找到listView_equip对象")
else
-- 成功获取,可以进行操作
local itemCount = GUI:ListView_getItemCount(listView)
SL:print("ListView包含", itemCount, "个单元格")
-- 添加点击事件示例
GUI:addOnClickEvent(listView, function()
SL:print("ListView被点击")
end)
end
```
**注意**:使用GUI工具创建控件时,一定要记住设置的ID名称,这是获取对象的关键。