创建基础容器
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-03-11 05:55:50 |
👁️ 阅读: 24
根据浮生梦老师前端课程内容,创建基础容器主要使用 `GUI:Layout_Create()` 函数。这个函数可以创建一个层容器,用来承载其他UI控件,并且可以设置是否裁切内容。
**函数说明:**
```lua
-- 创建层容器
-- parent: 父节点对象
-- ID: 唯一ID
-- x: 位置横坐标
-- y: 位置纵坐标
-- width: 宽度
-- height: 高度
-- isClip: 是否裁切(可选参数,默认false)
function GUI:Layout_Create(parent, ID, x, y, width, height, isClip) end
```
**基础示例:**
```lua
-- 首先创建父窗口
local parent = GUI:Win_Create("MainWindow", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 创建基础容器
local layout = GUI:Layout_Create(parent, "my_layout", 100, 100, 300, 200, true)
-- 设置容器属性(可选)
if layout then
-- 设置锚点为中心
GUI:setAnchorPoint(layout, 0.5, 0.5)
-- 设置位置
GUI:setPosition(layout, 100, 100)
-- 设置内容大小
GUI:setContentSize(layout, {width = 300, height = 200})
-- 开启触摸
GUI:setTouchEnabled(layout, true)
-- 开启裁切(如果创建时已设置isClip=true,这里可以省略)
GUI:setClippingEnabled(layout, true)
end
```
**实际应用案例:**
```lua
-- 创建带背景的基础容器
local function createBaseContainer()
-- 创建窗口
local win = GUI:Win_Create("BaseContainerWin", 0, 0, 800, 600, false, false, true, false, false, false, 1)
-- 创建基础容器
local container = GUI:Layout_Create(win, "base_container", 400, 300, 600, 400, true)
-- 设置容器居中
GUI:setAnchorPoint(container, 0.5, 0.5)
GUI:setPosition(container, 400, 300)
-- 添加背景图
local bg = GUI:Image_Create(container, "bg", 0, 0, "res/public_win32/1900000610.png")
if bg then
GUI:setAnchorPoint(bg, 0, 0)
GUI:setContentSize(bg, {width = 600, height = 400})
end
-- 添加按钮
local btn = GUI:Button_Create(container, "test_btn", 300, 200, "res/public_win32/1900000612.png")
if btn then
GUI:Button_setTitleText(btn, "测试按钮")
GUI:addOnClickEvent(btn, function()
SL:print("按钮被点击了!")
end)
end
return win
end
-- 调用函数创建容器
local myWindow = createBaseContainer()
```
**关键点说明:**
1. **父节点必须存在**:创建容器前需要先创建父窗口或父容器
2. **ID唯一性**:每个容器的ID必须是唯一的
3. **裁切功能**:当`isClip=true`时,超出容器范围的内容会被裁切掉
4. **坐标系统**:容器的坐标是相对于父节点的局部坐标
这个基础容器可以用来组织UI界面,将相关控件放在一起管理,方便进行整体移动、显示/隐藏等操作。
← 返回问答库