addChild
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-11 23:49:40 |
👁️ 阅读: 7
`addChild` 是前端UI布局中常用的函数,用于将一个控件(子节点)添加到另一个控件(父节点)中,建立父子关系。
**函数原型:**
```lua
GUI:addChild(parent, child)
```
**参数说明:**
- `parent` (必填, obj): 父节点对象
- `child` (必填, obj): 要添加的子节点对象
**使用示例:**
```lua
-- 创建父节点
local parent = GUI:Win_Create("MyWindow", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 创建子节点
local childWidget = GUI:Widget_Create(parent, "child_widget", 50, 50, 100, 100)
-- 将子节点添加到父节点
GUI:addChild(parent, childWidget)
```
**注意事项:**
1. 必须先创建父节点,再创建子节点
2. 子节点会继承父节点的位置、缩放等变换
3. 当父节点被移除时,所有子节点也会被移除
4. 一个控件只能有一个父节点,如果已经存在父节点,需要先移除再添加
**实际应用场景:**
```lua
-- 在列表中添加项目
local listView = GUI:ListView_Create(parent, "listView", 0, 0, 200, 300, 1)
local listItem = GUI:Widget_Create(-1, "list_item", 0, 0, 200, 50)
GUI:addChild(listView, listItem)
-- 在面板中添加多个控件
local panel = GUI:Widget_Create(parent, "panel", 100, 100, 300, 200)
local button = GUI:Button_Create(-1, "btn_test", 50, 50, "res/public/1900000612.png")
local text = GUI:Text_Create(-1, "text_info", 50, 100, 16, "#ffffff", "提示信息")
GUI:addChild(panel, button)
GUI:addChild(panel, text)
```
**常见错误:**
```lua
-- 错误:子节点未创建就添加
local parent = GUI:Win_Create("Test", 0, 0, 0, 0, false, false, true, false, false, false, 1)
GUI:addChild(parent, nil) -- 会出错
-- 正确:先创建再添加
local child = GUI:Widget_Create(parent, "child", 0, 0, 100, 100)
GUI:addChild(parent, child)
```
这个函数在前端UI开发中非常基础且重要,掌握好父子节点关系是构建复杂界面的关键。
← 返回问答库