`GUI:ListView_getItems(widget)` 函数用于获取列表容器中所有子项对象的列表。
**函数格式:**
```lua
local items = GUI:ListView_getItems(widget)
```
**参数说明:**
- `widget`:列表容器对象(必填)
**返回值:**
- 返回一个包含所有子项对象的数组(table)
**使用示例:**
```lua
-- 1. 获取ListView控件
local listView = GUI:getChildByName(parentNode, "ListView_1")
-- 2. 获取所有子项
local allItems = GUI:ListView_getItems(listView)
-- 3. 遍历子项进行操作
for i, item in ipairs(allItems) do
SL:print("第" .. i .. "个子项:" .. tostring(item))
-- 可以获取每个子项的索引位置
local index = GUI:ListView_getItemIndex(listView, item)
SL:print("索引位置:" .. index)
end
-- 4. 获取子项数量
local itemCount = #allItems
SL:print("列表总共有" .. itemCount .. "个项目")
```
**实际应用场景:**
```lua
-- 场景1:删除所有子项
local items = GUI:ListView_getItems(listView)
for i = #items, 1, -1 do
GUI:ListView_removeItemByIndex(listView, i)
end
-- 场景2:查找特定子项
local function findItemByTag(listView, tagValue)
local items = GUI:ListView_getItems(listView)
for _, item in ipairs(items) do
local tag = GUI:getTag(item)
if tag == tagValue then
return item
end
end
return nil
end
-- 场景3:更新所有子项状态
local items = GUI:ListView_getItems(chatListView)
for index, item in ipairs(items) do
-- 设置每个聊天项的已读状态
local readFlag = GUI:getChildByName(item, "Image_readFlag")
GUI:setVisible(readFlag, false)
end
```
**注意事项:**
1. 返回的items数组顺序与列表中的显示顺序一致
2. 如果列表为空,返回的是空表 `{}`
3. 获取到的子项可以直接用于其他ListView函数,如 `GUI:ListView_removeChild()`
4. 结合 `GUI:ListView_getItemIndex()` 可以获取每个子项的位置
这个函数在需要批量操作列表项时非常有用,比如清空列表、批量更新、查找特定项目等场景。