GUI:removeAllChildren 详细使用方法
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-06-14 22:59:24 |
👁️ 阅读: 2
`GUI:removeAllChildren()` 是用于移除一个控件所有子节点的函数。
**基本用法:**
```lua
-- 假设有一个父节点对象 parent
GUI:removeAllChildren(parent)
```
**完整的安全使用示例:**
```lua
-- 在操作前检查父节点是否有效
if not GUI:Win_IsNull(parent) then
GUI:removeAllChildren(parent)
SL:Print("已清空父节点的所有子节点")
else
SL:Print("父节点为空,无法操作")
end
```
**典型应用场景:**
1. 清空列表容器内容
```lua
-- 清空一个节点容器
local node = self.ui['Node_1']
GUI:removeAllChildren(node)
```
2. 清空文本容器
```lua
-- 清空文本容器
GUI:removeAllChildren(self.ui.Text_1)
```
3. 清空多个容器
```lua
-- 批量清空多个容器
GUI:removeAllChildren(self.ui.Node_1)
GUI:removeAllChildren(self.ui.Text_1)
GUI:removeAllChildren(self.ui.Text_2)
```
**函数说明:**
- 参数:`widget` - 要清空子节点的控件对象
- 作用:移除该控件的所有直接子节点
- 注意:这个操作不会影响控件本身,只移除其子节点
**使用注意事项:**
1. 操作前最好用 `GUI:Win_IsNull()` 检查控件是否有效
2. 如果要保留某些子节点,可以使用 `GUI:removeChildByName()` 删除特定节点
3. 这个函数常用于界面刷新前清空旧内容
比如在更新UI时,通常会先清空容器,然后重新添加新的内容:
```lua
function updateUI()
-- 清空旧内容
GUI:removeAllChildren(self.ui.Node_1)
-- 添加新内容
for i, v in ipairs(data) do
local item = GUI:Widget_Create(self.ui.Node_1, "item_" .. i, 0, 0, 100, 100)
-- ... 设置item内容
end
end
```
← 返回问答库